有兩段代碼不知道哪里不一樣,報錯為int' object is not callable
def b(list1):
? ? sum=1
? ? for i in list1:
? ? ? ? sum=sum*i
? ? return sum
def calc_prod(lst):
? ? def fun():
? ? ? ? return b(lst)
? ? return fun()
f = calc_prod([1, 2, 3, 4])
print f()
def b(list1):
? ? sum=1
? ? for i in list1:
? ? ? ? sum=sum*i
? ? return sum
def calc_prod(lst):
? ? def fun():
? ? ? ? return b(lst)
? ? return fun()
f = calc_prod([1, 2, 3, 4])
print f()
2019-02-22
舉報
2019-02-22
return fun() ==> return fun
2019-05-25
代碼好難理解,
2019-02-27
樓上說得對。
按照你寫的,calc_prod函數執行完之后返回了fun(),也就是f=fun(),那最后一行的f()就代表fun()(),就錯了。
要想最后一行的f()可以當做fun()被調用,f就應該等于fun,所以return fun()改成return fun就可以啦。