-1

在下面的代码中;

>>> class fooo():
        def __init__(self):
            self.a=[]
>>> fooo().a
    []
>>> fooo.a
    Traceback (most recent call last):
      File "<pyshell#12>", line 1, in <module>
        fooo.a
    AttributeError: class fooo has no attribute 'a'

我对用于访问变量“a”的符号 fooo().a 和 fooo.a 有点困惑。是不是每当我们使用 fooo().aa 时抛出 foo() 类的对象,它相当于做为:

>>> m=fooo()
>>> m.a
[]

; 在使用符号 fooo.a 时,我们期望 a 是一个类/静态变量?我是对的还是其他原因?

4

1 回答 1

0

a是一个实例属性。可以使用fooo().a. 但请注意,这样做只会丢弃fooo创建的实例;一个更明智的例子是:

y = fooo()
y.a = 5

在创建类的实例之前它不存在。是的,你完全正确。

于 2013-09-28T19:26:03.227 回答