class BaseOne(object):
def base_one(self):
print self.first
print self.second
# Do stuffs with self.first and self.second defined from sub class
class BaseTwo(object):
def base_two(self):
print self.first
print self.second
# Do stuffs with self.first and self.second defined from sub class
class Stackoverflow(BaseOne, BaseTwo):
def __init__(self):
super(Stackoverflow, self).__init__()
self.first = 'Stack'
self.second = 'Overflow'
class Serverfault(BaseOne, BaseTwo):
def __init__(self):
super(Serverfault, self).__init__()
self.first = 'Server'
self.second = 'Fault'
Stackoverflow().base_one()
Serverfault().base_one()
在 BaseOne
或 BaseTwo
中,我想使用从子类定义的变量。有没有更好的方法来完成上述操作?
最佳答案
我认为没有任何理由不这样做。我建议在基类上添加诸如 first, secondary = None, None
的内容(或创建这两个继承的更高级别),以解决子类无法设置这些值的情况,但除此之外这应该没问题。
关于python - 在Python多重继承中,父类使用子定义的变量有多糟糕?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11544309/