在我正在研究的Python软件中,我有许多对象需要能够“连接”到其他对象(此处连接的术语指的是它只需指向对象它的事实与...连接。
我曾想过创建一个连接类,它可以创建此链接并存储有关连接属性的信息。如下所示,当我创建一个新对象时,我有一个方法允许我添加一个具有特定类型的新连接。
class ConnectableObject()
def addNewConnection(self, connectiontype)
self.connections.append(NewConnection(connectiontype))
这个想法是每个对象应该有自己的连接类型......并且它们是可连接的。即,对象A具有与之关联的连接对象,对象B具有与其关联的连接对象,并且为了连接这两个对象,我只是连接它们的连接。这允许我存储有关连接对象中每个连接的信息。一旦这个连接对象被实例化,我想存储在连接对象'who'中创建它,即对象A ...对象B.在Python中是否有办法从Object请求它在哪个类中创建?< / p>
另外,更一般地说,是否有更简洁的方法来实现对象之间的连接,其中每个对象连接可以存储自己的属性?
答案 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>