[英]Using __init__ and inheritance in python
對於使用__init__
和繼承,我有些困惑,很想獲得一些幫助。
我有一個課程[無法更改]:
class A(object):
def __init__(self, param1 = 7, param2 = 10):
self.x = param1
self.y = param2
def func1(self):
op1()
op2()
def func2(self):
pass
這是一些已編寫的類,在重載其功能時正在使用它:
class B(A):
def func1(self)
op3()
op4()
def func2(self)
op5()
我的問題從這里開始:我想多次使用B類,並每次發送不同的參數:
---new .py file: ---
def myFunction():
myInstance = B()
我想做這樣的事情:
def myFunction():
myInstance = B(40,"test")
我以為添加到B類__init__
但是問題是現在我不確定它將使用什么self
:解釋:在B類內部,我想重載func2(self)
我想寫:
class B(A):
def __init__(self, paramNumber, paramString)
self.paramNumber = paramNumber
self.paramString = paramString
但是現在在func2(self)
,使用了什么self
? 新的那一個? 舊的? 能行嗎 這意味着我將擁有: self.x , self.y and self.paramNumber self.parmString ?
他們是不同的“自我”
編輯:我也應該使用super嗎?
class B(A):
def __init__(self, paramNumber, paramString,param1, param2)
self.paramNumber = paramNumber
self.paramString = paramString
super(B,self).__init__(param1,param2)
def myFunction():
myInstance = B(40,"test")
// I will get : self.x = 7
// self.y= 10
// self.paramNumber=40
//self.paramString = "test"
這是正確的解決方案嗎?
因此,基本上,您想從child內的父類運行__init__
:
class B(A):
def __init__(self, paramNumber, paramString):
super(B, self).__init__(param1=1, param2=2)
# the other code goes here
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.