0
class Person:
def _init_(self):
self.A=1
class Employee(Person):
def _init_(self):
print(A)
object1=Person()
object2=Employee()
class Person:
def _init_(self):
self.A=1
class Employee(Person):
def _init_(self):
print(A)
object1=Person()
object2=Employee()
あり、そのコードに複数の問題は、スペルが間違ってコンストラクタ以外にも...
_init_
方法は__init__
する必要があり、実際にそうでなければだが継承を持つことができますコンストラクタではなく、ただちに_init_
というメソッドが呼び出されることはありません。A
は設定されません。 super().__init__()
またはPerson.__init__(self)
A
フィールドを読み取るには、self.A
を使用する必要があります。それ以外の場合は、これは動作するはずA
というローカル変数を探します:
class Person:
def __init__(self): # misspelled
self.A = 1
class Employee(Person):
def __init__(self): # misspelled
super().__init__() # call super constructor
print(self.A) # use self.A
助けてくれてありがとう –
'' __init__'と同じではありません_init_'。あなたの "コンストラクタ"は決して呼び出されません。タイプミスのために閉じる投票。 –
@tobias_kうーん、そこにはもう少し多くのものがあります。 –
@DanielRosemanうん、すでに気づいて、私の票を引っ込めました。 –