'b'和'c'之间有什么区别?

zjm*_*126 1 python class

class a(object):
    b = 'bbbb'
    def __init__(self):
        self.c = 'cccc'
Run Code Online (Sandbox Code Playgroud)

我认为他们是一样的; 有什么不同吗?

abe*_*yer 9

是,有一点不同.

b是一个类变量...一个由所有实例共享的变量a,而c实例变量将独立存在于每个实例中.

  • 你可能的意思是"是",因为*是*差异. (3认同)

iam*_*mac 5

b是一个类变量,c而是一个实例变量.

>>> a.b
'bbbb'
>>> a.c
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: type object 'a' has no attribute 'c'
>>> a().b
'bbbb'
>>> a().c
'cccc'
Run Code Online (Sandbox Code Playgroud)

类的实例可能具有不同的实例变量值,但它们共享相同的类变量.