私はPython言語が初めてです。私はそれで10日間しか経験していません。学び始めは特に難しいことはありませんが、「オブジェクト指向の概念」、特に「継承」に到達すると遅くなります。
「継承された子クラスは、親クラスの特性と動作、つまり親のデータとメソッドのすべてを取得できる」という私の背景知識の一部。わかりました、2 つのプログラムで私を混乱させる概念を示します。どちらも同じ結果になっているのに、なぜ人は違うものを作っているのか。
初め:
class Parent():
parentdata = 0
def __init__(self):
pass
def getParentData(self):
return Parent.parentdata
def setParentData(self, setdata):
Parent.parentdata = setdata
class Child(Parent):
childdata = 0
def __init__(self):
pass
def getChildData(self):
return Child.childdata
def setChildData(self, setdata):
Child.childdata = setdata
child = Child()
print "Default Child's Data is :" + str(child.getChildData())#getting 0
child.setChildData(3)
print "After Adding Child's Data is :"+ str(child.getChildData()) # getting 3
print "Default Parent's Data is:"+ str(child.getParentData())# getting 0
child.setParentData(1)
print "After Adding Parent's Data is :"+str(child.getParentData())# getting 1
2番:
class Parent():
parentdata = 0
def __init__(self):
pass
def getParentData(self):
return Parent.parentdata
def setParentData(self, setdata):
Parent.parentdata = setdata
class Child(Parent):
childdata = 0
def __init__(self):
#super(Child, self).__init__()
#super(Child, self).__init__(self, self)
Parent.__init__(self)
def getChildData(self):
return Child.childdata
def setChildData(self, setdata):
Child.childdata = setdata
child = Child()
print "Default Child's Data is :" + str(child.getChildData())#getting 0
child.setChildData(3)
print "After Adding Child's Data is :"+ str(child.getChildData()) # getting 3
print "Default Parent's Data is:"+ str(child.getParentData())# getting 0
child.setParentData(1)
print "After Adding Parent's Data is :"+str(child.getParentData())# getting 1
Super()
また、誰かが使用したメソッドの使用方法、そこにあるスーパーメソッド、およびいくつかは私のやり方で行っているメソッドの使用方法も教えてください.私はParent.__init__(self)
これら2つの違いがはっきりしていません.
これら2つのプログラムでは__init__
、コンストラクターとして使用していません。asを使用__init__
してクラスのデータ (childdata、parentdata) にデータを追加する場合、どのようにパラメーターを挿入し、そのメソッドParent.__init__(self)
の両方に挿入しますか?def __init__(self):