課程
/后端開發
/Python
/python進階
為何reduce報錯?
2020-02-21
源自:python進階 2-8
正在回答
應該是print(f()) 這句報的錯吧 換成print(f)試試
謝謝您呢,結果運行出來了,感謝您的幫助!
from functools import reduce
def calc(lst):
? ? def lazy():
? ? ? ? def f (x,y):
? ? ? ? ? ? return x*y
? ? ? ? return reduce(f,lst,1)
? ? return lazy
f = calc([1,2,3,4])
print(f())
仲夏rww 提問者
在 Python3 中,reduce() 函數已經被從全局名字空間里移除了,它現在被放置在 functools 模塊里,如果想要使用它,則需要通過引入 functools 模塊來調用 reduce() 函數:
from?functools?import?reduce
舉報
學習函數式、模塊和面向對象編程,掌握Python高級程序設計
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網安備11010802030151號
購課補貼聯系客服咨詢優惠詳情
慕課網APP您的移動學習伙伴
掃描二維碼關注慕課網微信公眾號
2020-02-21
應該是print(f()) 這句報的錯吧 換成print(f)試試
2020-03-10
謝謝您呢,結果運行出來了,感謝您的幫助!
2020-02-21
from functools import reduce
def calc(lst):
? ? def lazy():
? ? ? ? def f (x,y):
? ? ? ? ? ? return x*y
? ? ? ? return reduce(f,lst,1)
? ? return lazy
f = calc([1,2,3,4])
print(f())
2020-02-21
在 Python3 中,reduce() 函數已經被從全局名字空間里移除了,它現在被放置在 functools 模塊里,如果想要使用它,則需要通過引入 functools 模塊來調用 reduce() 函數: