我很新于Python,注意到了这些帖子:
Python __init__ 和 self 是什么? 和
不使用def __init__(self)定义Python类
然而,在尝试后,我发现这两个类给出了明显相同的结果。
这两者之间有实质性的区别吗?或者更一般地说,
class A(object):
def __init__(self):
self.x = 'Hello'
def method_a(self, foo):
print self.x + ' ' + foo
(来自这个问题)
和
class B(object):
x = 'Hello'
def method_b(self,foo):
print self.x + ' ' + foo
这两者之间有实质性的区别吗?或者更一般地说,
__init__
对类的属性有本质上的改变吗?文档中提到当实例被创建时会调用__init__
。这是否意味着在实例化之前类B
中的x
已经确定了?