python常量折叠是什么

  • 时间:
  • 9858人关注

python常量折叠:1、在编译时就查找并计算常量表达式,而不是在运行时再对其进行计算;2、使用反汇编模块获取 CPython 字节码,从而更好地了解代码执行的过程。,另外这篇文章主要知识点是关于Python、python教程的内容,如果大家想对相关知识点有系统深入的学习,可以参阅以下电子资料:

教程详情电子资料
  • 教程类别:python教程
  • 编辑整理:夏永思
  • 教程字数:488字节
  • 阅读时间:大概20分钟
  • 下载本教程(DOC版)
  • Python程序设计开发宝典
  • Python入门经典
  • 像计算机科学家一样思考Python
  • Python pygame五子棋游戏
  • Python+Spark2.0+Hadoop机器学习与大数据实战
  • 无意中在网上看到《python常量折叠是什么》,感觉很有用处,把程序员重写的代码发布到这里,希望大家能有所收获。

    python常量折叠是什么

    1、概念

    所谓常量折叠,指的是在编译时就查找并计算常量表达式,而不是在运行时再对其进行计算,从而会使运行时更加精简和快速。

    2、实例

    在 Python 中,我们可以使用反汇编模块(Disassembler)获取 CPython 字节码,从而更好地了解代码执行的过程。

    当使用dis模块反汇编上述常量表达式时,我们会得到以下字节码:

    >>> import dis
    >>> dis.dis("day_sec = 24 * 60 * 60")
     
            0 LOAD_CONST               0 (86400)
            2 STORE_NAME               0 (day_sec)
            4 LOAD_CONST               1 (None)
            6 RETURN_VALUE

    从字节码中可以看出,它只有一个LOAD_CONST ,以及一个已经计算好的值86400。

    这表明 CPython 解释器在解析和构建抽象语法树期间,会折叠常量表达式 24 * 60 * 60,并将其替换为计算值 86400。

    以上就是python常量折叠的介绍,希望能对大家有所帮助。更多Python学习指路:

    上一篇:python ElementTree是什么意思

    下一篇:python find函数的用法

    相关内容

    • python中unicode与utf-8的区别是什么

      UTF-8最大的一个特点,就是它是一种变长的编码方式。它可以使用1~4个字节表示一个符号,根据不同的符号而变化字节长度。UTF-8的编码规则很简单,只有二条: 1)对于单字节的符号,字节的第一位设为0,后面7位为这个符号的unicode码。因此对于英语字母,UTF-8编码和ASCII码是相同的。 2)对于n字节的符号(n1),第一个字节的前n位都设为1,第n+1位设为0,后面字节的前两位一律设为10。剩下的没有提及的二进制位,全部为这个符号的unicode码。 下表总结了

      05-21python中unicode与utf-8有何区别

      阅读更多
    • python实现向微信用户发送每日一句

      这篇文章主要为大家详细介绍了python实现微信每日一句自动发送给喜欢的人,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

      02-11python实现微信每日一句自动发送给喜欢的人

      阅读更多
    • python数据用echarts显示出来

      在本篇文章里小编给大家分享的是关于python数据用echarts显示出来的相关知识点内容,需要的朋友们学习下。

      06-27Python数据可视化pyecharts的使用

      阅读更多
    • Python CGI编程原理知识点总结

      CGI(Common Gateway Interface),通用网关接口,它是一段程序,运行在服务器上如:HTTP服务器,提供同客户端HTML页面的接口

      01-18Python编程用什么好?了解当下最火热的Python CGI编程

      阅读更多
    • python循环10次写法以及实例代码

      Python中for循环可以遍历任何序列的项目,如一个列表或者字符串。例:“for i in range(10):”,while用于循环执行程序,循环执行某段程序,以处理需要重复处理的相同任务,例:“a = 10,while a0

      07-08python循环10次怎么写

      阅读更多
    • 零基础入门学习Python

      零基础入门学习Python

      Python零基础入门学习-水木书荟 适合学习Python3的入门读者,也适用对编程一无所知,但渴望用编程改变世界的朋友们!本书提倡理解为主,应用为王。因此,只要有可能,小甲鱼(作者)都会

      大小:59.3 MBPython编程

      立即下载
    • 像计算机科学家一样思考Python

      像计算机科学家一样思考Python

      本书以培养读者以计算机科学家一样的思维方式来理解Python语言编程。贯穿全书的主体是如何思考、设计、开发的方法,而具体的编程语言,只是提供了一个具体场景方便介绍的媒介。 全书共

      大小:1.9 MBPython

      立即下载
    • 基于Python的大数据分析基础及实战

      基于Python的大数据分析基础及实战

      配套设施教程视频教你如何学Python 提炼出避坑技能招式简要、高效率懂Python 实战演练经典案例轻轻松松、迅速玩Python 解读实践活动实例视頻源码源统计数据 对于Python初学者量身订做,新手入

      大小:202 MBPython大数据

      立即下载

    学习笔记

    21小时43分钟前回答

    详解Python实现多进程异步事件驱动引擎

    本文介绍了详解Python实现多进程异步事件驱动引擎,分享给大家,具体如下: 多进程异步事件驱动逻辑 逻辑 code # -*- coding: utf-8 -*-'''author: Jimmycontact: 234390130@qq.comfile: eventEngine.pytime: 2017/8/25 上午10:06description: 多进程异步事件驱动引擎'''__author__ = 'Jimmy'from multiprocessing import Process, Queueclass EventEngine(object): # 初始化事件事件驱动引擎 def __init__(self): #保存事件列表 self.__eventQueue = Queue() #引擎开关 self.__active = False #事件处理字典{'event1': [handler1,handler2] , 'event2':[handler3, ...,handler4]} self.__handlers = {} #保存事件处理进程池 self.__processPool = [] #事件引擎主进程 self.__mainProcess = Process(target=self.__run) #执行事件循环 def __run(……

    30小时50分钟前回答

    手机有什么python编译器

    现在越来越多人学习python,很多小伙伴都富有激情的,利用碎片化的时间都要学习,大家都知道pyhton是简单易学的,但是光说不练,假把式,最好能编程并且运行,最好能有一款在手机上可以随时随地编写python代码,而且功能齐全的app。 下面为大家列举几种,我知道的手机上的python编辑器。(推荐学习:Python视频教程) Android系统: Python编译器 是一款非常精炼的APP,主要为Python初学者提供直接运行的功能,能够随手验证一些小程序。 Python新手用户制作的一款手机编程学习工具,支持手机Python代码编译、脚本测试等功能,界面清爽,功能实用! 该软件支持直接从文件管理器中打开代码文件,方便用户浏……