Я новичок в python и заметил эти сообщения: Python __init__ и сам, что они делают? и классы Python без использования def __init __ (self)
Тем не менее, после разговора с ним я заметил, что эти два класса дают, по-видимому, эквивалентные результаты -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__
. Означает ли это, что x
в классе B
устанавливается до создания экземпляра?