假设我有这两个类:
class Branch():
def __init__(self, id, leaves):
self.id = id
self.leaves = leaves
class Leaf():
def __init__(self, color)
self.color = color
def describe()
print("This leaf is " + color)
每一个都Leaf属于一个Branch。无论ABranch是否有叶子,它都会继续存在,但如果Leaf没有 a,a 就无法有意义地存在Branch(抛开现实生活中的逻辑不谈)。这意味着我可以通过属性轻松地Leaf从 a中获取每一个。如果我正确理解了组合,a是组合并且每个in都是它的组成部分之一?BranchBranch.leavesBranchLeafBranch.leaves
但是,Leaf实际上没有人知道Branch它属于哪个。所以,我不能让它打印“这片叶子是橙色的,属于分支#14 ”。每当我初始化一个新实例时,我可以添加一个Leaf.branch属性并传递它Leaf,看看 aBranch必须已经存在才能发生,但这对我来说似乎非常错误,因为它看起来像是Branch属于Leaf.
问题是:在我的例子中,我描述的我不能做的最pythonic和正确的方法是什么?我认为的感觉很不对,其实一点也不坏吗?或者更确切地说,这个问题是由糟糕的设计引起的,我应该从另一个角度来看这个问题吗?提前致谢。