首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python "NoneType is not callable“错误

Python "NoneType is not callable“错误
EN

Stack Overflow用户
提问于 2010-07-20 01:32:16
回答 2查看 13.8K关注 0票数 4

我有一个如下所示的函数,有一大堆可选参数。其中一个参数,在所有其他参数中,就是text

我特别处理text,因为如果它是一个布尔值,那么我想基于它运行来做一些事情。如果不是(这意味着它只是一个字符串),那么我会做一些其他的事情。代码大致如下所示:

代码语言:javascript
复制
def foo(self, arg1=None, arg2=None, arg3=None, ...,  text=None, argN=None, ...):
    ...
    if text is not None:
        if type(text)==bool:
            if text:
                # Do something
            else:
                # Do something else
        else:
            # Do something else

我在type(text)==bool行上得到以下错误:

代码语言:javascript
复制
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "...", line 79, in foo
    if type(text)==bool:
TypeError: 'NoneType' object is not callable

不确定问题出在哪里。我应该以不同的方式测试类型吗?在python命令行上的实验似乎证实了我的方法应该是有效的。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-07-20 01:38:17

我猜你在某个地方有一个名为type的参数,我可以用下面的代码很容易地重现你的错误:

代码语言:javascript
复制
>>> type('abc')
<class 'str'>
>>> type = None
>>> type('abc')
Traceback (most recent call last):
  File "<pyshell#62>", line 1, in <module>
    type('abc')
TypeError: 'NoneType' object is not callable
票数 8
EN

Stack Overflow用户

发布于 2010-07-20 01:40:17

我敢打赌,你的论点中一定有type=None

这只是一般规则的一个特例:“不要隐藏你自己的内置标识符--在任何特定的给定情况下,它可能会咬人,也可能不会咬人,但在未来的某些情况下,它会咬你,除非你养成正确的习惯”!-)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3283441

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档