如何在Python创建中反汇编对象?

2024-09-27 00:17:05 发布

您现在位置:Python中文网/ 问答频道 /正文

有这样的课程:

class Spam(object):
   def __init__(self, name=''):
      self.name = name

eggs = Spam('systempuntoout')

使用dis,是否可以查看类的实例和相应的十六进制标识是如何创建的?在


Tags: 实例nameselfobjectinitdefspameggs
1条回答
网友
1楼 · 发布于 2024-09-27 00:17:05

是的,但从输出来看并不明显,输出是在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在做什么并不需要太多的工作,但是随着代码的增长,大多数人很快就看不懂了。在

相关问题 更多 >

    热门问题