Python 3.x 跨类调用通过';兄弟姐妹';遗产
我想知道我所创造的东西是否有效和“好”——或者实际上是一团糟 我有一个类,它有一个调用另一个类中函数的方法。然而,只有当这两个类被合并到另一个子类中时,它才“可见”。如果有人只是在看这个方法,他们可能会想知道它到底在哪里——这并不清楚 我在这里做错了什么,还是Python中常见的什么Python 3.x 跨类调用通过';兄弟姐妹';遗产,python-3.x,multiple-inheritance,Python 3.x,Multiple Inheritance,我想知道我所创造的东西是否有效和“好”——或者实际上是一团糟 我有一个类,它有一个调用另一个类中函数的方法。然而,只有当这两个类被合并到另一个子类中时,它才“可见”。如果有人只是在看这个方法,他们可能会想知道它到底在哪里——这并不清楚 我在这里做错了什么,还是Python中常见的什么 class A(): def __init__(self): pass def register_urc(self, text): prin
class A():
def __init__(self):
pass
def register_urc(self, text):
print(text)
class B(A):
def __init__(self):
A.__init__(self)
class C():
def __init__(self):
self.register_urc("Hello World")
class Z(B, C):
def __init__(self):
B.__init__(self)
C.__init__(self)
def test(self):
print("finished")
z = Z()
z.test()
我得到的是:
Hello World
finished.
我假设这是可行的,因为我引用了Z的“self”,并将其传递给所有其他类 你期望的情况是什么?您关心的是链接还是可读性。可读性。在类C中没有称为register_urc()的方法,并且类C不从任何对象继承。只有当您查看C被继承的位置,然后向下查看类B时,您才会看到在类A中实际找到register_urc(),python正在按照您的要求执行操作。如果C在Z上没有角色,那么不要继承它。记住雅格尼(你不需要它),记住“显式比隐式好”。简而言之,重新设计你的设计,尽量做到显式。