python - 在Python多重继承中,父类使用子定义的变量有多糟糕?

标签 python multiple-inheritance

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()

BaseOneBaseTwo 中,我想使用从子类定义的变量。有没有更好的方法来完成上述操作?

最佳答案

我认为没有任何理由不这样做。我建议在基类上添加诸如 first, secondary = None, None 的内容(或创建这两个继承的更高级别),以解决子类无法设置这些值的情况,但除此之外这应该没问题。

关于python - 在Python多重继承中,父类使用子定义的变量有多糟糕?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11544309/

相关文章:

python - 如何使用等效对象访问集合的元素?

python - 一点一点地阅读霍夫曼压缩

C++ 多重继承 : Using base class A's implementation for abstract method of base class B

java - 向下转换为间接子类不起作用?

C++多接口(interface)继承和static_cast

python - 合并具有最小公共(public)键值的字典

python - ResNet34 在 Keras.application 中可用吗?

java - Java中一个接口(interface)可以扩展多个接口(interface)吗?

python - 如何在没有迭代的情况下基于 Pandas 中的 2+ 个条件创建一个新的 df.column?

c++ - 交叉编译用 `#ifdef`好还是继承好?