TypeError:'dict'对象在使用dict()时不可调用

时间:2017-01-12 05:10:52

标签: python

我使用的是Python 2.7.12(默认,2016年11月19日,06:48:10) 在linux2上[GCC 5.4.0 20160609],当我在其中运行下面的代码时会显示相应的错误。我搜索了很多关于这个但是我无法找到它为什么会这样

>>> bob=dict(name='bob smith',age=42,pay='10000',job='dev')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: 'dict' object is not callable

3 个答案:

答案 0 :(得分:14)

在一位新口译员中:

>>> bob=dict(name='bob smith',age=42,pay='10000',job='dev')
>>> bob
{'age': 42, 'pay': '10000', 'job': 'dev', 'name': 'bob smith'}

但是,您获得了TypeError

  

TypeError:&#39; dict&#39;对象不可调用

您收到此错误会告诉您您的 dict无法调用。

由于我的 dict在我打开新的翻译时可以调用,这意味着您的 dict不同。

最有可能的是,您定义了dict变量,该变量覆盖了内置dict

dict = {...}

行,并重命名您的变量。

正如@Robᵩ所指出的,不要为变量使用内置名称。特别要避免诱人strlist等等。

答案 1 :(得分:6)

在该交互式会话的上一行中,您将dict名称反弹到某个变量。也许你有一句话dict={1:2}dict=dict(one=1, two=2)

以下是一个这样的会议:

>>> dict=dict(one=1)
>>> bob=dict(name='bob smith',age=42,pay='10000',job='dev')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: 'dict' object is not callable
>>> 

作为一般规则,不应使用内置类型名称作为变量名称,以防止此错误。

答案 2 :(得分:1)

编辑:忽略这一点,我被告知这是不好的做法。

正如mgilson所说,问题可能是你有一个名为dict的变量。解决方法是运行

del dict

以该名称删除变量。