有这样一类:如何在Python中反汇编对象创建?
class Spam(object):
def __init__(self, name=''):
self.name = name
eggs = Spam('systempuntoout')
使用dis
,是有可能怎么看类别和相应六角身份的一个实例被创建?
有这样一类:如何在Python中反汇编对象创建?
class Spam(object):
def __init__(self, name=''):
self.name = name
eggs = Spam('systempuntoout')
使用dis
,是有可能怎么看类别和相应六角身份的一个实例被创建?
是的,但不是很明显从输出,这是Python的字节码的水平,例如:
>>> class Foo(object):
... def f(x): return x * x
...
>>> dis.dis(Foo)
Disassembly of f:
2 0 LOAD_FAST 0 (x)
3 LOAD_FAST 0 (x)
6 BINARY_MULTIPLY
7 RETURN_VALUE
它并不需要太多找出Foo.f从做上面的转储,但随着代码的增长,大多数人很快就无法读取它。
对不起马塞洛,但我不明白你的答案,它以任何方式赞同我的问题:)? – systempuntoout 2010-04-23 09:22:35
也许我误解了你的问题。 'dis'模块显示编译函数和方法的字节码。如果你在你的类中调用'dis.dis(Spam)',你会看到init方法的字节码实现。这是你想要的,还是你在寻找别的东西? – 2010-04-23 10:37:34
是的,我在谈论dis.dis(垃圾邮件)谢谢。是否有可能看到何时创建对象ID? – systempuntoout 2010-04-23 13:14:13
你为什么不试试? – extraneon 2010-04-23 09:07:32
我在发帖之前已经尝试过了,我认为这是不可能的。 – systempuntoout 2010-04-23 09:10:14