Python NoneType object is not callable (beginner)

前端 未结 4 1723
傲寒
傲寒 2020-12-04 14:25

It tells me line 1 and line 5 (new to debugging/programming, not sure if that helps)

def hi():
    print(\'hi\')


def         


        
相关标签:
4条回答
  • 2020-12-04 14:56

    Why does it give me that error?

    Because your first parameter you pass to the loop function is None but your function is expecting an callable object, which None object isn't.

    Therefore you have to pass the callable-object which is in your case the hi function object.

    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)
    
    0 讨论(0)
  • 2020-12-04 15:03

    I faced the error "TypeError: 'NoneType' object is not callable " but for a different issue. With the above clues, i was able to debug and got it right! The issue that i faced was : I had the custome Library written and my file wasnt recognizing it although i had mentioned it

    example: 
    Library           ../../../libraries/customlibraries/ExtendedWaitKeywords.py
    the keywords from my custom library were recognized and that error  was resolved only after specifying the complete path, as it was not getting the callable function.
    
    0 讨论(0)
  • 2020-12-04 15:04

    You want to pass the function object hi to your loop() function, not the result of a call to hi() (which is None since hi() doesn't return anything).

    So try this:

    >>> loop(hi, 5)
    hi
    hi
    hi
    hi
    hi
    

    Perhaps this will help you understand better:

    >>> print hi()
    hi
    None
    >>> print hi
    <function hi at 0x0000000002422648>
    
    0 讨论(0)
  • 2020-12-04 15:06

    You should not pass the call function hi() to the loop() function, This will give the result.

    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)            # Do not use hi() function inside loop() function
    
    0 讨论(0)
提交回复
热议问题