【发布时间】:2017-12-03 04:31:08
【问题描述】:
我怎样才能写出下面的代码,让不是所有的功能都是一样的?
>>> def g(x):
... l = []
... for i in range(1,10):
... def f(x):
... return x + i
... l.append(f)
... return l
这个想法应该是 g 返回一个包含 9 个函数的列表,其中第一个函数返回 x+1 第二个 x+2 等等。但是,由于在 python 中一切都是对象,所有以前的函数定义都将被覆盖。我该如何解决这个问题?
【问题讨论】:
-
我认为这里的问题是
i是最终值,而不是函数。 -
所有函数都是相同的:它们都添加了
i的当前值。而当你调用函数时,i的当前值为 10。
标签: python