动态代码执行
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()可以执行表达式,那么如果要动态执行一个函数时&#x