鱼C论坛

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

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

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

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

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

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

Python exec() 函数


语法

  1. exec(source, globals=None, locals=None, /)
复制代码


参数

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


source

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

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

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

描述

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

返回值

None

例子

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

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

本帖被以下淘专辑推荐:

小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-5-14 13:27

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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