[英]__init__ : Inheriting __init__ parameter (dict) to another class's __init__ method?
即使檢查了許多在SO中提出的問題,我也感到困惑。 我有2個不同的類(2個不同的腳本),我想繼承超類的__init__
方法的參數。
script1.py
class MainClass():
def __init__(self,params):
self.one=params['ONE']
self.two=params['TWO']
self.three=params['THREE']
self.four=params['FOUR']
self.five=params['FIVE']
def a():
#---------
#somecode
#Initializing other class's object to access it's method.
s=SubClass() #HERE I WANT TO PASS 'PARAMS' (WHICH IS A DICTIONARY)
s.method1(....)
script2.py
class SubClass(SuperClass):
def __init__(self,params):
#Here I want all the parameters inside the 'param' in super class.
#(one,two,three...., etc).
#By checking some SO questions, I changed class SubClass() -->
#class Subclass(SuperClass) & below line:
MainClass.__init__(self,params) #But technically I don't have anything
#in param in subclass.
def method1():
#some code...
由於子類的參數沒有任何內容,因此給我一個錯誤:
self.one=params['ONE']
TypeError: 'int' object has no attribute '__getitem__'
我沒有得到:
如何以最簡單的方式訪問父類的所有參數? 我不想將單個參數(例如self.one,self.two ..)傳遞給子類。
如果我在SubClass
調用第三類-> method1
>調用3rd類,與傳遞“ params”相同。 可能嗎?
這是您需要的嗎?
script1.py
class MainClass():
def __init__(self,params):
# Save params for use by a
self.params = params
self.one=params['ONE']
self.two=params['TWO']
...
self.five=params['FIVE']
def a():
s=SubClass(self.params)
s.method1(...)
script2.py
class SubClass(SuperClass):
def __init__(self,params):
MainClass.__init__(self,params)
def method1():
#some code...
您可以將子類的__init__()
中的所有非關鍵字參數傳遞給超類,如下所示:
class SubClass(SuperClass):
def __init__(self, *params):
MainClass.__init__(self, *params)
...
同樣的想法也適用於其他方法。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.