Python源码学习(六)-PyCodeObject初探

来源:互联网 发布:淘宝客赚钱么 编辑:程序博客网 时间:2024/04/28 21:27

demo1.py

def f():c=1print("Hello")a=9b=5f();

co.py

source = open('demo1.py').read()co = compile(source, 'demo1.py', 'exec')print("type:")print(type(co))print("dir(co)")print(dir(co))print("co.co_name:" + co.co_name)print("co.co_names:")for i in co.co_names:print(i)print("-" * 30)print("co.co_code:")print(co.co_code)print("-" * 30)print("co.co_consts:")for i in co.co_consts:print(i)print("-" * 30)print("co.co_filename:")print(co.co_filename)print("-" * 30)print("co.nlocals:")print(co.co_nlocals)print("-" * 30)print("co.co_stacksize:")print(co.co_stacksize)print("co.co_lnotab;")print(co.co_lnotab)print("-" * 30)print("co.co_varnames:")for i in co.co_varnames:print(i)

结果

type:<class 'code'>dir(co):['__class__', '__delattr__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__le__', '__lt__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', 'co_argcount', 'co_cellvars', 'co_code', 'co_consts', 'co_filename', 'co_firstlineno', 'co_flags', 'co_freevars', 'co_kwonlyargcount', 'co_lnotab', 'co_name', 'co_names', 'co_nlocals', 'co_stacksize', 'co_varnames']co.co_name:<module>co.co_names:fab------------------------------co.co_code:b'd\x00\x00\x84\x00\x00Z\x00\x00d\x01\x00Z\x01\x00d\x02\x00Z\x02\x00e\x00\x00\x83\x00\x00\x01d\x03\x00S'------------------------------co.co_consts:<code object f at 0x00C0D2F0, file "demo1.py", line 1>95None------------------------------co.co_filename:demo1.py------------------------------co.nlocals:0------------------------------co.co_stacksize:1co.co_lnotab;b'\t\x04\x06\x01\x06\x01'------------------------------co.co_varnames:


原创粉丝点击