【发布时间】:2021-04-14 17:19:43
【问题描述】:
我正在处理共享一些初始公共变量/属性的多个类。为了使其更干净并避免多次调用相同的变量,我想将它们全部设置在初始类中(例如classA),然后将所有这些属性加载到classB中。
所以我会定义:
class classA:
def __init__(self, varA, varB, varC, ..., varZ):
self.varA = varA
self.varB = varB
self.varC = varC
(...)
self.varZ = varZ
然后再加载它classB
class classB:
def __init__(self, classA):
self.varA = classA.varA
self.varB = classA.varB
self.varC = classA.varC
(...)
self.varZ = classA.varZ
有没有更好的方法来实现这一点,而无需遍历所有单独的属性?
【问题讨论】:
-
class classB(classA)? -
如果
classB完全派生自classA,您可以像Rakesh 建议的那样从A继承B。如果它只共享一些属性,你可以有一个公共基类classCommon并让classA和classB从那个继承 -
我可能是错的,但据我了解,通过继承我必须在调用
classB时再次输入所有变量,而不是在脚本中调用classB(classA)。
标签: python python-3.x class attributes