将多个属性从一个 class 调用到另一个 - Python

Call multiple attributes from one class into another - Python

我正在与多个 class 共享一些初始共同点 variables/attributes。为了使其成为 cleaner 并避免多次调用相同的变量我想将它们全部设置为初始 class (例如 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

有没有更好的方法来实现这一点,而无需遍历所有单个属性?

您可以使用 argument unpacking 和继承:

class A:
    def __init__(self, *args, **kwargs):
        for k, v in kwargs.items():
            setattr(self, k, v)


class B(A):
    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)


data = {'varA': 'a', 'varB': 'b', 'varC': 'c'}
a = A(**data)
b = B(**data)

print(a.varB == b.varB)

输出:

True