Python:找出“配偶”类?

2024-05-12 15:42:50 发布

您现在位置:Python中文网/ 问答频道 /正文

所以我有个问题。假设我有两个父类。它们都继承自主类。然后它们都是子类的父类。有没有办法搞清楚(比如说我是父亲)我“和哪个母亲班生孩子”呢我不需要孩子知道是哪个母亲班,我希望父亲能够知道是哪个母亲班。你知道吗

我知道这是一个愚蠢的例子,但这只是我在其他地方必须做的一个简化版本。你知道吗

class Master(object):
    def __init__(self):
        self.troll()
        self.trell()

class Mother1(Master):
    def troll(self):
        print 'troll1'

class Mother2(Master):
    def troll(self):
        print 'troll2'

class Father(Master):
    def trell(self):
        print 'trell'
        print self.figure_out_spouse_class()

class Child1(Mother1, Father):
    pass

class Child2(Mother2, Father):
    pass

c = Child1() #should print 'Mother1'
c = Child2() #should print 'Mother2'

~
~
~
~


Tags: selfmasterdef孩子classprint父亲母亲
2条回答

您可以查看子对象类的__bases__,例如

class Father(Master):
    def trell(self):
        print self.__class__.__bases__[0]
        super(self.__class__, self).troll()

您可以使用__bases__

def figure_out_spouse_class(self):
    return [b.__name__ for b in self.__class__.__bases__ if b != Father]

(如果有多个“配偶”类别,则返回所有“配偶”类别的名称)。你知道吗

相关问题 更多 >