Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/278.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
compile()python3前两个参数的意义_Python - Fatal编程技术网

compile()python3前两个参数的意义

compile()python3前两个参数的意义,python,Python,我试图扩大我对python的各种内置模块的理解,我遇到了compile()。 我创建了一个名为program.py的文件,它返回print(“hello”)。我打算(从表面上看)在将来的程序中使用compile()到exec其他程序 我的问题是前两个论点的意义是什么?我知道第三个选项可以是三个选项之一:exec、eval和single 如果有人理解compile()命令,请帮助我 import program compile('','','exec',flags=0,dont_inherit=

我试图扩大我对python的各种内置模块的理解,我遇到了compile()。 我创建了一个名为
program.py
的文件,它返回
print(“hello”)
。我打算(从表面上看)在将来的程序中使用
compile()
exec
其他程序

我的问题是前两个论点的意义是什么?我知道第三个选项可以是三个选项之一:
exec
eval
single

如果有人理解
compile()
命令,请帮助我

import program

compile('','','exec',flags=0,dont_inherit=False,optimize=-1)
# compile(source, filename, mode, flags=0, dont_inherit=False, optimize=-1) - are the args

第一个是要编译的Python源代码。第二个是要在回溯中显示的文件名

>>> compile('foo', 'bar', 'exec')
<code object <module> at 0x7fb586b57ab0, file "bar", line 1>
>>> exec(compile('foo', 'bar', 'exec'))
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "bar", line 1, in <module>
NameError: name 'foo' is not defined
编译('foo','bar','exec') <在0x7fb586b57ab0处编码对象模块,文件“bar”,第1行> >>>exec(编译('foo','bar','exec')) 回溯(最近一次呼叫最后一次): 文件“”,第1行,在 文件“bar”,第1行,在 NameError:未定义名称“foo”
  • 源-可以是Unicode字符串或拉丁-1编码字符串。i、 e
    compile('a+5','eval')

  • filename参数应该给出代码所来自的文件 阅读如果不是从文件中读取,则传递一些可识别的值(通常使用字符串)

  • 因此,如果要编译文件,第一个值将是空字符串,第二个值将指定文件名,如果要编译字符串,第一个值将是字符串,第二个值将是空字符串