2 つの単純なクラスを持つ。1 つは属性のみ、もう 1 つはと属性parent
の両方を持ちます。これは、 と の両方を持つものは のみを持つものから継承することを意味します。parent
children
parent
children
parent
parent
これは、属性のみを持つクラスです。Child
親ではなく子にしかできないので、それを呼びましょう。set_parent()
わかりやすくするためにメソッドを使用しますが、実際のコードではセッターを使用します。
class Child(object):
def __init__(self, parent=None):
self.__parent = None
self.set_parent(parent)
def set_parent(self, parent):
# Remove self from old parent's children
if self.__parent:
self.__parent.remove_child(self)
# Set new parent
self.__parent = parent
# Add self to new parent's children
if self.__parent:
self.__parent.add_child(self)
コードは完全に理にかなっていて、うまく機能しているようです。これは、Parent
クラスが次のように単純に見える場合です。
class Parent(Child):
def __init__(self, parent=None):
super(Parent, self).__init__(parent)
self.__children = []
def add_child(self, child):
if child not in self.__children:
self.__children.append(child)
def remove_child(self, child):
if child in self.__children:
self.__children.remove(child)
ただし、古い親の子から削除しながら、呼び出しmy_parent.add_child(my_child)
てmy_child
の親属性をに設定できるようにしたいと考えています。my_parent
my_child
実際にコードを設計する方法を理解できないようです。私が試みるすべてのことは、set_parent()
とadd_child()
またはの間の無限ループに変わりますremove_child()
。
このサイトは他の人が私のためにコードを書くためのものではないことはわかっていますが、誰かが少なくともヒントを与えることができますか? 私の脳はこの問題を処理することができません.30分間まっすぐ考えていましたが、何も成し遂げていません. 助けてください!