首页 > 编程语言 >python compile函数用法

python compile函数用法

时间:2023-04-13 15:55:59浏览次数:45  
标签:函数 exec python 代码 用法 compile 编译 eval

将文本代码编译成Python可执行代码,这个代码对象可以通过eval()exec()函数执行。

compile()函数的语法如下:

compile(source, filename, mode, flags=0, dont_inherit=False, optimize=-1)

参数说明:

    • source: 必选. 必须是一个字符串,表示要编译的代码。
    • filename: 必选?  表示代码的文件名。如果代码不是从文件中读取的,可以传入一个描述代码的字符串。 (没看到有效的例子, 一般用空字符串代替. ) 
mode
    : 必选? 表示编译代码的模式。可以是以下三种模式中的一种:
    • 'exec': 表示编译的代码是一个模块,可以被exec()函数执行。
    • 'eval': 表示编译的代码是一个表达式,可以被eval()函数执行。
    • 'single': 表示编译的代码是单个语句,可以被exec()函数执行。
  • flags: 可选参数,表示编译时的标志位,默认值为0。可以使用多个标志位,使用|符号连接。
  • dont_inherit: 可选参数,表示是否继承父级作用域。默认值为False,表示继承。
  • optimize: 可选参数,表示优化级别。默认值为-1,表示不进行优化。

compile()函数返回一个代码对象,可以被eval()exec()函数执行。如果编译错误,compile()函数会抛出SyntaxError异常。

示例:

1 code = compile('print("hello, world!")', 'test.py', 'exec')
2 exec(code)
3 # 输出:hello, world!
在这个示例中,compile()函数将字符串'print("hello, world!")'编译成一个代码对象,然后通过exec()函数执行。执行结果是输出了一行文字hello, world!

标签:函数,exec,python,代码,用法,compile,编译,eval
From: https://www.cnblogs.com/qingyuanjushi/p/17315098.html

相关文章

  • Graphs with Python: Overview and Best Libraries
    GraphswithPython:OverviewandBestLibrariesGraphanalysis,interactivevisualizations,andgraphmachinelearning Agraphisarelativelyoldmathematicaldataentitythatisasetofconnectedelements.Sincethegraphisaveryflexiblestructure......
  • python虚拟环境
    Python虚拟环境是一种为Python项目创建隔离的开发环境的方式,能够在单个安装的Python实例中创建多个独立的开发环境。Python虚拟环境将安装到特定目录中,并能够在该目录下管理Python包和依赖项,不会与其他Python项目的开发环境冲突。虚拟环境可以使用`venv`模块来创建。以下是使用......
  • PHP中$_SERVER用法
    $_SERVER['PHP_SELF']#当前正在执行脚本的文件名,与documentroot相关。$_SERVER['argv']#传递给该脚本的参数。$_SERVER['argc']#包含传递给程序的命令行参数的个数(如果运行在命令行模式)。$_SERVER['GATEWAY_INTERFACE']#服务器使用的CGI规范的版本。例如,“CGI/1.1”。$_SE......
  • python4:字符串操作
    概念:字符串是一种序列,每一个位置对应了一个下标。,要取出字符串的部分数据可以从下标取出(下标从0开始)。这里支持索引。切片:截取字符串中一段内容。切片使用语法:[起始下标:结束下标:步长]截取的内容不包含结束下标对应的数据,步长指的是隔几个下标获取一个字符。(这是python语言的高级......
  • Python程序笔记20230305
    n以内能被m整除的数的和、积最初版本计算指定数字内所有偶数的和n=int(input("请输入指定的n:"))i=0mysum=0whilei<=n: ifi%2==0: mysum=mysum+ii=i+1print(f"{n}以内的所有偶数的和是{mysum}")print("{0}以内的所有偶......
  • python-zip
    python-zipzip()是Python的一个内建函数定义:zip([iterable,...])zip()是Python的一个内建函数,它接受一系列可迭代的对象作为参数,将对象中对应的元素打包成一个个tuple(元组),然后返回由这些tuples组成的list(列表)。若传入参数的长度不等,则返回list的长度和参数中长度最短的对......
  • 笨办法学 Python · 续 练习 3:质量
    练习3:质量原文:Exercise3:OnQuality译者:飞龙协议:CCBY-NC-SA4.0自豪地采用谷歌翻译我将提出一个关于认知的科学理论,我并不能证明它:你所做事情的记忆,会让你思考最终产品,这是正确的行为。这基于我所做的,几乎每一个创造性的事情的观察,它是这样:你创造的东西需要很长一段时间。这可......
  • 笨办法学 Python · 续 练习 9:`sed`
    练习9:sed原文:Exercise9:sed译者:飞龙协议:CCBY-NC-SA4.0自豪地采用谷歌翻译使用这些小型项目来研究你自己是有用的,但让我们来看看你主要关注的主题:开始工作的启动流程,例如你的文本编辑器,你可以打字打的多好,以及计算机内部发生的其他事情。心理状态,当你开始工作时,建议将日志作为......
  • 笨办法学 Python · 续 练习 7:`grep`
    练习7:grep原文:Exercise7:grep译者:飞龙协议:CCBY-NC-SA4.0自豪地采用谷歌翻译find命令在45分钟内应该可能是一个挑战,但它是一个很好的挑战。到了这个时间,你应该可以去掉尽可能多的,阻止你开始的障碍。你可能会发现,当你清除一些障碍时,你的技能会变得更糟。例如,我以前在开始工作......
  • 笨办法学 Python · 续 练习 8:`cut`
    练习8:cut原文:Exercise8:cut译者:飞龙协议:CCBY-NC-SA4.0自豪地采用谷歌翻译希望你正在深入学习Python,甚至了解你自己和你的工作方式。在本书的这一部分,通过学习如何优化你的流程,你学到了流程和创造力的一些事情。的确,有阻碍的情况下你不能发挥创造力,但是你应该意识到,改善自己......