首页 > 解决方案 > 如何创建生成其他代码的代码

问题描述

自从几个月前我开始学习 python 以来,我一直着迷于如何使用简单的代码来完成复杂的任务。

所以,我一直在尝试做这样的事情,

list = [1,2,3,4]

statement = ''

if len(list) > 4:
    statement = '[x for x in list if x%%2 == 0]'
else:
    //do something else

我知道这行不通,因为上面的语句只是一个字符串,但我希望你明白我想要做什么,并希望你能建议我应该如何去做。

标签: python

解决方案


我认为您正在寻找 eval 函数:

Python eval() eval() 方法解析传递给该方法的表达式,并在程序中运行 python 表达式(代码)。

简单来说,eval() 方法在程序中运行 python 代码(作为参数传递)。

eval()的语法是:

eval(expression, globals=None, locals=None)

eval() 参数: eval() 采用三个参数:

-expression - 此字符串作为 Python 表达式进行解析和评估

-globals (可选) - 字典

-locals(可选)- 一个映射对象。字典是 Python 中标准且常用的映射类型。全局变量和局部变量的使用将在本文后面讨论。

eval() 的返回

eval() 方法返回从表达式评估的结果。

例子:

x = 1
print(eval('x + 1'))
list = [1,2,3,4,5]

statement = ''

if len(list) > 4:
    statement = '[x for x in list if x%2 == 0]'
else:
    pass

print(eval(statement)) # [2, 4]

推荐阅读