【发布时间】:2012-04-30 20:49:11
【问题描述】:
我是 Python 新手。你能告诉我下面的代码有什么问题吗?当我运行它时,我收到一条错误消息“NameError:未定义全局名称'reduce'”。我问过古尔格,但没用。 :(
def main():
def add(x,y): return x+y
reduce(add, range(1, 11))
if __name__=='__main__':
main()
【问题讨论】:
-
reduce被移出内置函数的原因之一是因为它经常被用于加法,其中sum更可取(在这种情况下,您可以只使用@987654324 @ 或sum(xrange(1, 11))在 Python 2 中)。另请注意,在标准库中有一个与您的add等效的函数:operator.add。