0

私が取り組んでいるPythonソフトウェアには、他のオブジェクトに「接続」できる必要があるオブジェクトがいくつかあります(ここで接続されている用語は、接続先のオブジェクトを指す必要があるという事実を指します)。 )。

このリンクを作成し、接続のプロパティに関する情報を格納できる接続クラスを作成することを考えました。以下に示すように、新しいオブジェクトを作成するときに、特定のタイプの新しい接続をオブジェクトに追加できるメソッドがあります。

class ConnectableObject()
    def addNewConnection(self, connectiontype)
        self.connections.append(NewConnection(connectiontype))

アイデアは、各オブジェクトが独自の接続タイプを持つ必要があるということです...そしてこれらは接続可能です。つまり、オブジェクトAには接続オブジェクトが関連付けられており、オブジェクトBには接続オブジェクトが関連付けられています。2つのオブジェクトを接続するには、それらの接続を接続します。これにより、各接続に関する情報を接続オブジェクトに保存できます。この接続オブジェクトがインスタンス化されたら、それを作成した接続オブジェクト'who'、つまりオブジェクトA ...オブジェクトBに保存したいと思います。Pythonで、オブジェクトから作成されたクラスを要求する方法はありますか?

また、より一般的には、各オブジェクト接続が独自のプロパティを格納できるオブジェクト間の接続を実装するためのよりクリーンな方法はありますか?

4

1 に答える 1

1

Pythonに、オブジェクト内で作成したクラスをオブジェクトから要求する方法はありますか?

あなたの質問には「接続」が多すぎるので、私の理解が正しいかどうかはわかりませんがConnectableObjectInstance.__class__、コンストラクターの引数として渡してNewConnectionから、接続オブジェクトのプロパティとして格納する必要があると思います。

編集:

を介して参照できるため、オブジェクトインスタンスの名前を知る必要はありませんself。また、おそらくクラスを接続プロパティとして保存する必要はありませんが、オブジェクトへの参照を保存する必要があります。そんな感じ:

>>> class Connection(object):
...  def __init__(self, parent):
...   self.parent = parent
...
>>> class ConnectableObject(object):
...  def __init__(self):
...   pass
...  def connect(self):
...   return Connection(self)
...
>>> conobj = ConnectableObject()
>>> con = conobj.connect()
>>> con.parent
<__main__.ConnectableObject object at 0x01FDEC70>
于 2012-11-18T23:20:10.027 に答える