次の 2 つのクラスがあるとします。
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
は、葉があるかどうかに関係なく存在し続けますが、 aなしでは(現実の論理は別として)Leaf
意味のある存在はできません。Branch
つまり、属性を介してLeaf
aから every を簡単に取得できます。構成を正しく理解していれば、aは複合体であり、すべての inはその構成要素の 1 つですか?Branch
Branch.leaves
Branch
Leaf
Branch.leaves
しかし、実際にはそれがどちらに属しているのLeaf
かはわかりません。Branch
そのため、「この葉はオレンジ色で、ブランチ #14 に属しています」と出力することはできません。属性を追加して、新しいインスタンスLeaf.branch
を初期化するたびにそれを渡すこともできます。そのためには がすでに存在している必要がありますが、 が に属しているように見えるため、それは私には非常に間違っているように思えます。Leaf
Branch
Branch
Leaf
問題は、私の例ではできないと説明したことを行うための最もpythonicで正しい方法は何ですか? 私が非常に間違っていると思ったことは、実際にはまったく悪いことではありませんか? というか、この問題は設計の悪さから生じたものであり、これを別の角度から見たほうがよいのでしょうか? 前もって感謝します。