有2种情况:
exec() 无返回值,可以动态执行复杂的代码块eval() 有返回值,只能执行简单的表达式代码块
在这里先简单的对exec()进行介绍,eval()后期再进行更新
exec()执行样例:
# -*- coding: utf-8 -*-if __name__ == '__main__':a = """def test():for i in range(5):print ("iter time: %d" % i)return 1111"""exec(a)b = test()print b
执行结果:
iter time: 0iter time: 1iter time: 2iter time: 3iter time: 41111
# -*- coding: utf-8 -*-if __name__ == '__main__':code = '''def code_index(radius):return radius * 2'''# code_index代表的是代码块里的函数名称, result_value代表代码块函数要传入的参数也就是radius, data代表代码块执行要返回的值constant = globals().copy()exec (code, constant)data = constant["code_index"](result_value)