ich Python ziemlich neu bin, und bemerkte, diese Beiträge: Python __init__ and self what do they do? und Python Classes without using def __init__(self)Nützlichkeit von def __init __ (selbst)?
Nachdem sie mit ihm herumspielen, bemerkte ich jedoch, dass diese beiden Klassen scheinbar ergebnis-
class A(object):
def __init__(self):
self.x = 'Hello'
def method_a(self, foo):
print self.x + ' ' + foo
Äquivalent geben (von this question)
und
class B(object):
x = 'Hello'
def method_b(self,foo):
print self.x + ' ' + foo
Gibt es einen wirklichen Unterschied zwischen diesen beiden? Oder, ganz allgemein, ändert sich __init__
irgendetwas inhärent über die Attribute einer Klasse? In the documentation wird erwähnt, dass __init__
aufgerufen wird, wenn die Instanz erstellt wird. Bedeutet dies, dass x
in Klasse B
vor der Instanziierung festgelegt wird?
+1 Vergessen Sie nicht, dass da Klassen Objekte können Sie das Attribut der Klasse jederzeit selbst ändern. 'Klasse A: bestanden; A.lst = Liste (Bereich (6))'. – kojiro