【发布时间】:2018-04-03 13:20:42
【问题描述】:
假设我需要创建 10 个函数,分别称为 add1、add2、...、add10。对于每个 i,addi 接受一个整数 x 并输出 x+i。
当我尝试以下操作并评估 add2(10) 时,Python 给了我一个 NameError。
for i in range(10):
def addi(x):
return x + (i+1)
我知道上面的代码是错误的,因为我定义的 addi 函数不是可变的;我很确定我所做的只是重新定义 addi 10 次。这10个函数如何快速定义?
【问题讨论】:
-
为什么你想要多个函数,在引用前一个函数时将每个返回值增加 1?这感觉像是一个 XY 问题。你用它做什么?也许有更好的解决方案适合您。
-
@MooingRawr 我现在正在学习通用运算符。当前的作业包括定义五个二元运算符(在 \C\times \Z 上),首先将整数表示为复数,然后在 \C 上使用适当的二元运算符。这导致了很多看起来相似的函数,所以我希望有一种方法可以缩短我的代码。
标签: python python-3.x functional-programming