鱼C论坛

 找回密码
 立即注册
查看: 1686|回复: 0

[技术交流] Python exec() 函数

[复制链接]
发表于 2020-3-17 19:52:12 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 一个账号 于 2020-3-17 20:40 编辑

Python exec() 函数


语法
exec(source, globals=None, locals=None, /)

参数

参数描述
globals变量作用域,全局命名空间,如果被提供,则必须是一个字典对象。
locals变量作用域,局部命名空间,如果被提供,可以是任何映射对象。


source

表示需要被指定的 Python 代码。它必须是字符串或 code 对象。

如果 object 是一个字符串,该字符串会先被解析为一组 Python 语句,然后在执行(除非发生语法错误)。

如果 object 是一个 code 对象,那么它只是被简单的执行。

描述

exec() 函数用于执行 Python 代码。相比于 eval,exec 可以执行更复杂的 Python 代码。

返回值

None

例子
>>> print(exec("3+3"))   # exec() 函数永远返回 None
None
>>> exec("print('Hello World!')")
Hello World!
>>> exec("""if True:
        print("True")""")
True
>>> exec("""for i in [i for i in range(20)]:
        print(i, pow(i, i))""")
0 1
1 1
2 4
3 27
4 256
5 3125
6 46656
7 823543
8 16777216
9 387420489
10 10000000000
11 285311670611
12 8916100448256
13 302875106592253
14 11112006825558016
15 437893890380859375
16 18446744073709551616
17 827240261886336764177
18 39346408075296537575424
19 1978419655660313589123979
>>> def test():
        a = 1
        exec("b = a")
        print(b)

        
>>> test()    # 这种错误请参考 https://fishc.com.cn/thread-161043-1-1.html
Traceback (most recent call last):
  File "<pyshell#6>", line 1, in <module>
    test()
  File "<pyshell#5>", line 4, in test
    print(b)
NameError: name 'b' is not defined

本帖被以下淘专辑推荐:

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-22 08:06

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表