23.Python中的exec函数

《Python编程的术与道:Python语言进阶》视频课程
《Python编程的术与道:Python语言进阶》视频课程链接:https://edu.csdn.net/course/detail/28618

exec函数

exec是Python的内置函数,能够执行储存在字符串或文件中的 Python 语句。 eval()函数只能执行计算数学表达式的结果的功能,而exec()能够动态地执行复杂的Python代码,

exec做的是编译和评估字符串中的语句。

首先,我们可以看到它可以完成eval所做的相同工作,例如:

exec("print('so this works like eval')")
so this works like eval
result = exec("print('so this works like eval')")
print(type(result))
so this works like eval

list_str = "[5,6,2,1,6]"
list_exec = exec(list_str)
print(type(list_exec))
print(list_exec)

None

并且可以比eval做更多,例如:

exec("def test(): print('oooo snap!!!')")
test()
oooo snap!!!
exec("""
def test2():
    print('lets see if multi line works....')
""")

test2()
lets see if multi line works....

在实际项目中,我们有些时候会将Python代码写入一些文件中,举个例子,如以下的fact.txt,它储存了我们想要的Python代码,如下:

# fact.txt
def fact(n):
    if n==1:
        return 1
    else:
        return n*fact(n-1)
t = fact(6)
print(t)
720

请再次注意,这是一个txt格式的Python代码。那么,我们如何调用它呢?答案就是exec()函数,代码如下:

with open('./files/fact.txt', 'r') as f:
    s = f.read()

exec(s)
720

你可能感兴趣的:(Python语言进阶,python)