2
class Tree:
    def __init__(self, label, children = []):
        self.label = label
        self.children = children

t1 = Tree("START")
t2 = Tree("END")
t1.children.append(t2)

print t2.children
[<__main__.Tree instance at 0x005421C0>]

为什么 t2.children 不是空的?

4

1 回答 1

0

问题是默认值只执行一次 - 当执行 def 语句时。因此,所有实例对象的子对象都被分配了相同的列表。

简而言之,t1和的列表t2是相同的列表。

于 2013-10-14T04:32:48.097 回答