Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/290.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python非类型对象不可调用(初学者)_Python_Nonetype - Fatal编程技术网

Python非类型对象不可调用(初学者)

Python非类型对象不可调用(初学者),python,nonetype,Python,Nonetype,它告诉我第1行和第5行(调试/编程新手,不确定这是否有用) def hi(): 打印('hi') def循环(f,n):#f重复n次 如果n>>循环(hi(),5) 你好 f() TypeError:“非类型”对象不可调用 为什么它会给我这个错误?你想把函数对象hi传递给你的loop()函数,而不是调用hi()的结果(这是None,因为hi()不会返回任何东西) 所以试试这个: >>> loop(hi, 5) hi hi hi hi hi 也许这会帮助您更好地理解: >

它告诉我第1行和第5行(调试/编程新手,不确定这是否有用)

def hi():
打印('hi')
def循环(f,n):#f重复n次
如果n>>循环(hi(),5)
你好
f()
TypeError:“非类型”对象不可调用

为什么它会给我这个错误?

你想把函数对象
hi
传递给你的
loop()
函数,而不是调用
hi()
的结果(这是
None
,因为
hi()
不会返回任何东西)

所以试试这个:

>>> loop(hi, 5)
hi
hi
hi
hi
hi
也许这会帮助您更好地理解:

>>> print hi()
hi
None
>>> print hi
<function hi at 0x0000000002422648>
打印hi() 你好 没有一个 >>>打印hi 为什么它会给我这个错误

因为传递给
循环
函数的第一个参数是,但函数需要一个可调用对象,而哪个对象不是

因此,您必须传递可调用对象,在您的例子中,它是
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)
def hi():
打印“嗨”
def循环(f,n):#f重复n次

如果n不应该将调用函数hi()传递给loop()函数,这将给出结果

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
def hi():
打印('hi')
def循环(f,n):#f重复n次
如果n我遇到了错误“TypeError:“NoneType”对象不可调用”,但原因不同。
有了以上的线索,我就能够调试并得到正确的结果!
我面临的问题是:
我写了自定义库,虽然我提到了它,但我的文件没有认出它

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.

不客气。此外,您可能希望调用函数
recurse
或类似的函数,因为它实际上不循环…如果hi函数接受一个参数(例如text),并打印作为变量text传递的字符串,该怎么办。如何处理?请尝试
lambda arg:hi(arg)