0

在我正在开发的 Python 软件中,我有许多对象需要能够“连接”到其他对象(此处连接的术语指的是它只需要指向它所连接的对象) )。

我曾想过创建一个连接类,它可以创建此链接并存储有关连接属性的信息。如下所示,当我创建一个新对象时,我有一个方法允许我向它添加一个特定类型的新连接。

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

这个想法是每个对象都应该有自己的连接类型......并且这些都是可连接的。即对象A有一个与之关联的连接对象,对象B有一个与之关联的连接对象,为了连接这两个对象,我只需连接它们的连接。这使我可以在连接对象中存储有关每个连接的信息。一旦这个连接对象被实例化,我想将它存储在连接对象'谁'创建它,即对象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 回答