小编Lah*_*arl的帖子

Perl:从子例程返回后,哈希值发生了变化

我正在使用perl中的哈希,但是不明白为什么哈希值会在以下内容中发生变化:

use strict;

sub test
{
    my ($value_ref) = @_;
    my %value = %$value_ref;
    $value{'abc'}{'xyz'} = 1;
}

my %hash;
$hash{'abc'}{'xyz'} = 0;
test (\%hash);
print "$hash{'abc'}{'xyz'}\n";
Run Code Online (Sandbox Code Playgroud)

以上返回1,为什么它不会像这样返回0呢?

use strict;

sub test
{
    my ($value_ref) = @_;
    my %value = %$value_ref;
    $value{'abc'} = 1;
}

my %hash;
$hash{'abc'} = 0;
test (\%hash);
print "$hash{'abc'}\n";
Run Code Online (Sandbox Code Playgroud)

我想它与我如何传递%hash有关.我错过了什么?

perl hash return-value subroutine

5
推荐指数
1
解决办法
673
查看次数

Python:打印嵌套类

打印嵌套类的内容的最佳方法是什么?例如:

class Library():
    def __init__(self):
        self.shelves = []
        self.shelf = self.Shelf()

    class Shelf():
        def __init__(self):
            self.books = []


x = Library()
Run Code Online (Sandbox Code Playgroud)

我知道如果该类未嵌套,则vars(x)可以工作。但是,如果是这样,我会得到类似以下内容的信息:

{'shelf': <__main__.Shelf instance at 0x7f4bae723560>, 'shelves': []}
Run Code Online (Sandbox Code Playgroud)

作为输出。如何获取python将其打印为:

{'shelf': {'books': []}, 'shelves': []}
Run Code Online (Sandbox Code Playgroud)

python printing nested class

1
推荐指数
1
解决办法
1751
查看次数

标签 统计

class ×1

hash ×1

nested ×1

perl ×1

printing ×1

python ×1

return-value ×1

subroutine ×1