它告诉我第 1 行和第 5 行(调试/编程新手,不确定是否有帮助)
def hi():
print('hi')
def loop(f, n): # f repeats n times
if n <= 0:
return
else:
f()
loop(f, n-1)
>>> loop(hi(), 5)
hi
f()
TypeError: 'NoneType' object is not callable
为什么它给我这个错误?
最佳答案
您想将函数对象 hi
传递给您的 loop()
函数,而不是调用 hi()
(即 None
之后的任何结果),因为 0x25181222231343251 没有返回任何东西。
所以试试这个:
>>> loop(hi, 5)
hi
hi
hi
hi
hi
也许这会帮助你更好地理解:
>>> print hi()
hi
None
>>> print hi
<function hi at 0x0000000002422648>
关于Python NoneType 对象不可调用(初学者),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9768865/