Code对象表示字节编译的可执行Python代码或字节码。
Code对象函数对象之间的区别在于:

  • 函数对象包含对函数的全局变量(定义它的模块)的显式引用,而Code对象不包含上下文
  • 默认参数值也存储在函数对象中,而不是存储在Code对象中(因为它们表示在运行时计算的值)。
  • 与函数对象不同,代码对象是不可变的,并且不包含(直接或间接)可变对象的引用。

code对象可以用来获取python程序运行过程中的函数名称。

参考链接
https://docs.python.org/2/reference/datamodel.html#objects-values-and-types

特殊的只读属性:

特殊的只读属性 解释
co_name 给出函数名称
co_argcount 是位置参数的数量(包括具有默认值的参数)
co_nlocals 是函数使用的局部变量数(包括参数)
co_varnames 是一个包含局部变量名称的元组(以参数名称开头)
co_cellvars 是一个元组,包含嵌套函数引用的局部变量的名称
co_freevars 是一个包含自由变量名称的元组
co_code 是表示字节码指令序列的字符串
co_consts 是一个包含字节码使用的文字的元组。如果Code对象是函数,则co_consts为函数文档字符串,如果没有定义则为None
co_names 是包含字节码使用的名称的元组
co_filename 是编译代码的文件名
co_firstlineno 是函数的第一个行号
co_lnotab 是一个字符串,用于编码从字节码偏移到行号的映射
co_stacksize 是所需的堆栈大小(包括局部变量)
co_flags 是一个整数,用于编码解释器的许多标志

co_flags的标志位:

标志位 说明
0x04 使用*arguments语法接受任意数量的位置参数
0x08 使用**keywords语法接受任意数量的键-值参数
0x20 函数是生成器
0x2000 函数是在未来分区启用的情况下编译的
0x10与0x1000 应用于Python的早期版本

Python的Code对象相关推荐

  1. python执行pyc文件_Python 编译:code对象 与 pyc文件

    运行程序 当在shell中敲入python xx.py运行 Python 程序时,就是激活了 Python 解释器. Python 解释器并不会立即运行程序,而是会对 Python 程序的源代码进行编 ...

  2. Python变量和对象类型速记手册

    变量和对象类型 Python中关于变量和对象类型有一些重要的概念: 变量不受类型约束 变量并不是一块内存空间的标签,只是对象的名字,是没有类型的,相当于一个可以指向任何对象void指针.类型属于对象, ...

  3. Python 动态获取对象的属性和方法(内含inspect)

    首先通过一个例子来看一下本文中可能用到的对象和相关概念. #coding:utf-8 import sysdef foo():passclass Cat(object):def __init__(se ...

  4. python类和对象_Python类和对象

    python类和对象 Python is an object-oriented programming language. Python Classes and Objects are the cor ...

  5. python:tzinfo 对象

    python:tzinfo 对象 class datetime.tzinfo 这是一个抽象基类,也就是说该类不应被直接实例化. 请定义 tzinfo 的子类来捕获有关特定时区的信息. tzinfo 的 ...

  6. python之⾯向对象-多态

    python之⾯向对象-多态 ⼀. ⾯向对象三⼤特性 封装 将属性和⽅法书写到类的⾥⾯的操作即为封装 封装可以为属性和⽅法添加私有权限 继承 ⼦类默认继承⽗类的所有属性和⽅法 ⼦类可以重写⽗类属性和⽅ ...

  7. python之⾯向对象-继承

    python之⾯向对象-继承 ⼀. 继承的概念 ⽣活中的继承,⼀般指的是⼦⼥继承⽗辈的财产. 拓展1:经典类或旧式类 不由任意内置类型派⽣出的类,称之为经典类. class 类名:代码...... 拓 ...

  8. python之⾯向对象基础

    python之⾯向对象基础 ⼀. 理解⾯向对象 ⾯向对象是⼀种抽象化的编程思想,很多编程语⾔中都有的⼀种思想. 例如:洗⾐服 思考:⼏种途径可以完成洗⾐服? 答: ⼿洗 和 机洗. ⼿洗:找盆 - 放 ...

  9. python做bi系统_如何使用Python创建可视化对象

    早前,Power BI就已经支持使用Python创建可视化对象了,当你遇到自定义程度较高的可视化对象时,Python就大大的派上了用场:那么我们如何使用呢?接下来小悦就为各位伙伴们介绍一下吧~ 首先, ...

  10. python一切皆对象的理解_Python中万物皆对象?的理解

    在很多地方都看到有过这样一句话,但是对象这个词的理解依然停留在谈朋友那个对象上-- python中一切皆为对象,一个对象的特征也称为属性(attribute).它所具有的行为也称为方法(method) ...

最新文章

  1. Redis 深度历险:核心原理与应用实践
  2. PHP-fpm的master进程杀死work还能处理任务吗
  3. java 保垒机telnet,开源堡垒机系统Teleport
  4. 深度学习(08)-- Residual Network (ResNet)
  5. shiro分布式控制登录状态_Shiro——强大且易用的Java安全框架(四)
  6. 第五:Pytest之收集用例规则与运行指定用例
  7. java设置全选_[Java教程]jQuery设置checkbox全选(区别jQuery版本)
  8. 【总结整理】openlayer加载搜狗地图,qq地图,mapabc
  9. 裸辞自学java和报培训班_程序员:裸辞十多天,不敢告诉家里人,假装每天上班,安静地成长...
  10. 量化7年1000万知与行,回测量化7年如果只每月定投5.4万到沪深300指数基金,能否实现7年1000万
  11. 微软输入法怎么打开软键盘?
  12. 台式电脑接路由器步骤_台式电脑插线步骤图连接路由器(路由器最正确的连接方法)...
  13. 计算机最基础知识复制文件,电脑基础入门知识-复制粘贴文件图文教程
  14. 直接在浏览器运行Python代码
  15. 日常运维工作的知识体系
  16. 台式计算机负荷,简单计算台式电脑功率
  17. 短视频高流量的秘诀,上热门全靠这些技巧
  18. 东西归置20210815
  19. 数据库原理之候选码的判断方法
  20. 【修真院web小课堂】请描述 BFC(Block Formatting Context) 及其如何工作

热门文章

  1. RedHat上安装openssl
  2. 【教学类-06-01】测20以内加减法的最大数量(优化版 20220122 VS python 20以内加减法)
  3. 图文详解 | 万用表的使用与口诀!十足干货,不要错过!
  4. 【序列化】Kryo 的几种常见序列化实现方式,及其兼容性
  5. VUCA时代的领导力开发
  6. 一些webGL地球的网址
  7. 大雁牌计算机在线使用,用大雁牌计算器解决有关计算问题.doc
  8. 线程池及其原理和使用
  9. 360路由器远程连接服务器,360路由器如何开启端口映射?
  10. 手机如何远程控制挂机宝? 影云挂机宝