它告诉我第 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/

10-16 00:49