我试图使我的代码更具动态性和更小,所以我尝试使用一些数组,但我需要在数组中放入一个函数。我听说过lambda,但问题是它不需要返回任何值,但需要设置一个值。这就是我尝试过但没有成功的方法:
variableArray = [lambda: value = '2' if variable == 1 else None,lambda: value = '3' if variable == 1 else None]
for k in range(len(variableArray)):
print(variableArray[k](2))
但是我不能用这个方法设置值,也找不到其他方法。那么,有没有其他方法可以和我正在尝试的工作一起工作呢?你知道吗
不完全清楚你需要什么,但也许这更接近你想要的。你知道吗
如果要从函数列表中获取值列表,并将单个参数传递到函数列表中,请尝试以下操作:
数组中的函数是可能的。但你不能把作业放在lambdas里。你的lambda不接受任何参数,尽管它传递了
2
。你知道吗而且
for k in range(len(variableArray)):
是浪费的坏形式。试试看:至于功能,也许你想要这个?你知道吗
Python区分了expressions和statements(这里是compound statements)。表达式不能包含任何语句。assignment是一个语句。^{}s 是表达式,因此无法将
lambda
与该语法一起使用。你知道吗但是,使用普通的
def
不会有太大的变化:这里
function
正在创建一个新的局部变量value
,给它赋值,然后删除它。如果要修改非局部变量,必须将其声明为global
:请注意,可以将用
def
定义的函数放入列表中:但是您应该尽量避免使用全局变量。 您应该更喜欢函数参数和返回值,以便在函数和程序的其余部分之间进行通信。你知道吗
尤其是您可能希望编写如下函数:
然后您可以执行以下操作:
这将与您的代码具有相同的效果。你知道吗
请注意,
lambda
应该有一个参数,否则用(2)
调用它们将引发错误。你知道吗相关问题 更多 >
编程相关推荐