eval是python的一个关键字,用处是将字符串里的内容当成python语句进行执行。
例如:
eval_result = eval("2 + 3")
print("eval_result:", eval_result)
输出结果:
eval_result: 5
关于eval的用法,在一些大一点的项目中经常会遇到,通常会在配置文件中使用类名的字符串来配置,然后使用eval来生成对应的类。
比如:
class Eval_test():
def __init__(self):
self.name = 'eval_test'
print('Generate a Eval_test instance.')
def __call__(self, *args, **kwargs):
print('this is a eval_test call')
if __name__ == '__main__':
config = {'type': "Eval_test"}
eval_class = eval(config['type'])
eval_instance = eval_class()
eval_instance()
输出:
Generate a Eval_test instance.
this is a eval_test call