Python非类型对象不可调用(初学者)
它告诉我第1行和第5行(调试/编程新手,不确定这是否有用)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 也许这会帮助您更好地理解: >
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)