当前位置: 首页 > 面试题库 >

Python NoneType对象不可调用(初学者)

司空宣
2023-03-14
问题内容

它告诉我第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因为hi()不返回任何东西)。

所以试试这个:

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

也许这可以帮助您更好地理解:

>>> print hi()
hi
None
>>> print hi
<function hi at 0x0000000002422648>


 类似资料:
  • 问题内容: 当我尝试在任何上下文中导入时,都会引发此错误: 知道我该如何解决吗?我只是通过打开Terminal,运行然后输入即可生成此错误。 问题答案: 昨天我遇到了同样的问题,没有安装Hashlib,尝试使用pip安装它会给出该错误。我通过使用easy_install进行安装来修复它。 另外我还必须在Windows上为Python 2.7安装Scipy和Microsoft Visual C ++

  • 问题内容: 我在Django中创建URL视图时遇到问题。它给了我这个错误(ferrol是一个Space对象): 这是代码: spaces / models.py Main urls.py spaces / urls.py spaces / views.py 问题答案: 在你的spaces / urls.py文件中,你必须提供查看方法的完整路径: 或像这样:

  • 问题内容: 我有以下代码 当我运行它时,我得到了: 这是为什么?怎么修? 问题答案: 将变量称为。它掩盖了内置功能。

  • 我可以从一个简单的脚本成功加载TextBlob模块,但不能从Flask应用程序加载。我将向您展示代码和错误。 加载一个简单的脚本工作: 从烧瓶应用程序加载时抛出错误: 错误: 我使用的是textblob版本0.11。0与pip一起安装。

  • 问题内容: 为什么会出现此错误?我很困惑。 你需要知道什么才能回答我的问题? 问题答案: 是一个包含的模块。 你需要执行以下操作: 这就是错误消息的含义: 它表示为,因为你的代码正在调用模块对象。模块对象是导入模块时得到的东西的类型。你试图做的是在模块对象中调用恰好与包含它的模块同名的类对象。 这是一种从逻辑上分解这种错误的方法: “ 告诉我我的代码试图调用无法调用的内容。我的代码试图调用什么?”

  • 问题内容: 码: 第一次工作,然后第二次出现错误: 有人知道为什么是这样吗? 我已经尝试过了,但出现错误: 问题答案: 这就是问题: 你正在重新定义什么意思。是字符串类型的内置Python名称,你不想更改它。 为本地变量使用其他名称,然后删除该语句。