[英]Python Inherit Module Class
我有一個 class,在init方法中有一堆泛型變量,而不是特定於 class。 我想制作另一個包含這些變量的 class,然后擁有第一個 class inheritance 這些變量。
所以第二個 class 不是父 class,而更像是一個模塊 class。
我如何在 python 中寫這個?
謝謝。
Class A():
def __init__(self):
self.generic_variable1 = 'blah'
self.generic_variable2 = 'blah'
self.generic_variable3 = 'blah'
self.generic_variable4 = 'blah'
self.generic_variable5 = 'blah'
self.generic_variable6 = 'blah'
def generic_method1(self):
return 'blah'
def class_specific_method1(self):
pass
創建兩個類后:
Class A():
def __init__(self):
pass
def class_specific_method1(self):
pass
Class B():
def __init__(self):
self.generic_variable1 = 'blah'
self.generic_variable2 = 'blah'
self.generic_variable3 = 'blah'
self.generic_variable4 = 'blah'
self.generic_variable5 = 'blah'
self.generic_variable6 = 'blah'
def generic_method1(self):
return 'blah'
簡直了
class A:
... ...
class B(A):
... ...
在 class B 中,如果不重寫__init__
,它將自動使用 class A 的。
如果您需要在 class B 的__init__
中做額外的事情:
class B(A):
def __init__(self, *args, **kw):
super().__init__(*args, **kw)
... ...
class 可以訪問的模塊級字典。
d = {'k':'v','q':'r','m':'n',...}
class F:
variables = d
def __init__(self,...)
或者可能是 collections.namedtuple 而不是字典來為您提供點訪問權限 - instance.variables.attr
而不是 instance.variables[attr]`。
如果您想要單個屬性:
d = {'k':'v','q':'r','m':'n'}
class F:
def __init__(self):
for attr,val in d.items():
setattr(self,attr,val)
或者在 class 之外設置屬性
d = {'k':'v','q':'r','m':'n'}
class F:
def __init__(self):
pass
for k,v in d.items():
setattr(F,k,v)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.