在Python中创建连接对象

时间:2012-11-18 23:01:39

标签: python

在我正在研究的Python软件中,我有许多对象需要能够“连接”到其他对象(此处连接的术语指的是它只需指向对象它的事实与...连接。

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

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

这个想法是每个对象应该有自己的连接类型......并且它们是可连接的。即,对象A具有与之关联的连接对象,对象B具有与其关联的连接对象,并且为了连接这两个对象,我只是连接它们的连接。这允许我存储有关连接对象中每个连接的信息。一旦这个连接对象被实例化,我想存储在连接对象'who'中创建它,即对象A ...对象B.在Python中是否有办法从Object请求它在哪个类中创建?< / p>

另外,更一般地说,是否有更简洁的方法来实现对象之间的连接,其中每个对象连接可以存储自己的属性?

1 个答案:

答案 0 :(得分:1)

  

Python中有没有办法从Object请求它是什么类   在?内创建?

你的问题中有太多'连接',所以我不确定我的理解是否正确,但我认为你需要将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>