每当我不知道某个类时,就会收到通知';t控件在python中实例化

每当我不知道某个类时,就会收到通知';t控件在python中实例化,python,Python,Python中有一个类,在实例化时,我希望得到实例化对象的通知。这个类不在我的控制之下,并且它在不在我控制之下的时候被实例化(而且,我通常不知道) 我可以这样做: [x for x in gc.get_objects() if isinstance(x, OtherLibraryClass)] 并且过滤掉我已经看到的对象,但是在我想找到实例化的每个时间点这样做似乎真的很浪费 有没有办法钩住另一个类的构造函数、调用等。;为了有效地装饰它,以便无论何时出现实例,我都会收到通知(最好是通过引用该对象

Python中有一个类,在实例化时,我希望得到实例化对象的通知。这个类不在我的控制之下,并且它在不在我控制之下的时候被实例化(而且,我通常不知道)

我可以这样做:

[x for x in gc.get_objects() if isinstance(x, OtherLibraryClass)]
并且过滤掉我已经看到的对象,但是在我想找到实例化的每个时间点这样做似乎真的很浪费


有没有办法钩住另一个类的构造函数、调用等。;为了有效地装饰它,以便无论何时出现实例,我都会收到通知(最好是通过引用该对象)?

您可以执行以下操作:

class B:
    def __init__(self): print "__init__" 

def k(self):
    print "Instantiating"
    p(self)

p, B.__init__ = B.__init__, k
s = B() 
这将为您提供:

Instantiating
__init__

您对通知的具体响应是什么?您首先是如何遇到这种情况的?Google Protobufs的Python API既不提供对底层描述符POL的访问,也不提供对其公共/私有导入依赖项的跨文件描述符的引用。我导入(并调用导入的代码)Python protobuf类,需要将这些文件描述符作为proto发送到另一个描述符pool,以便跨语言边界s.t注册它们。另一端的DynamicMessage可以从池中构建。我最可能的工作方式之一是捕获所有文件描述符(或者,解析文件描述符协议并使用中间记录)。。。。呵呵。。。依赖性就在那里,它们只是没有被记录……绝对美妙。没有意识到
\uuuu init\uuuu
可以像那样重新分配。