zoukankan      html  css  js  c++  java
  • Python源码学习(六)-PyCodeObject初探

    demo1.py

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


    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:
    f
    a
    b
    ------------------------------
    co.co_code:
    b'dx00x00x84x00x00Zx00x00dx01x00Zx01x00dx02x00Zx02x00ex00x00x83x00x00x01dx03x00S'
    ------------------------------
    co.co_consts:
    <code object f at 0x00C0D2F0, file "demo1.py", line 1>
    9
    5
    None
    ------------------------------
    co.co_filename:
    demo1.py
    ------------------------------
    co.nlocals:
    0
    ------------------------------
    co.co_stacksize:
    1
    co.co_lnotab;
    b'	x04x06x01x06x01'
    ------------------------------
    co.co_varnames:
    


  • 相关阅读:
    1.1、MyEclipse自定义注释
    angular2 组件内容嵌入(ng-content)
    常用css初始化样式(淘宝)
    web移动端rem的适配
    PSCC2019常用基础操作
    vs Code打开新的文件会覆盖窗口中的文件?
    关于将ECharts引入到项目中的几种方式
    VS code 设置侧边栏字体大小
    Visual Studio Code(VS code)你们都在用吗?或许你们需要看一下这篇博文
    Angular 监听滚动条事件
  • 原文地址:https://www.cnblogs.com/phisy/p/3363590.html
Copyright © 2011-2022 走看看