Почему это дает мне эту ошибку?
Поскольку ваш первый параметр, который вы передаете функции loop
, равен Нет , но ваша функция ожидает вызываемый объект, который Нет объект не является.
Следовательно, вы должны передать вызываемый объект, который в вашем случае является hi
функциональным объектом.
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)