动态代码执行
eval()函数
该函数用于对传入的表达式进行解析和评估,原型如下:
eval(expression, globals=None, locals=None)
# globals:如果指定,必须为一个字典,表示全局上下文
# locals:如果指定,必须为一个映射类型,表示本地上下文
在前面分析repr()函数时说过,会根据repr()的返回值评估一个对象,如:
class Student:
def __init__(self, name, age):
self.name = name
self.age = age
def __repr__(self):
return "Student('{0}',{1})".format(self.name,self.age)
if __name__ == "__main__":
s1 = Student("zhangsan",21)
s2 = eval(repr(s1))
print(s2.name) # zhangsan
除了这种用法之外,还可以执行一般的表达式,如:
result = eval("2+3") # 5
eval()可以执行表达式,那么如果要动态执行一个函数时,这个方法时不行的,可以使用exec(

本文介绍了Python中的动态代码执行,包括eval()和exec()函数的使用,以及动态导入模块的方法。eval()用于解析和评估表达式,而exec()则能执行函数代码。动态导入模块可以通过代码实现或使用__import__()函数。文章还探讨了如何在导入模块后操作模块的属性和方法。
最低0.47元/天 解锁文章
448

被折叠的 条评论
为什么被折叠?



