我试过在python控制台中执行以下基本语句,我得到的是一个错误说:
dict object is not callable
我执行的代码:
>>> test_dict = {1:"one",2:"two"}
>>> set3= set(test_dict)
Traceback (most recent call last):
File "<input>", line 1, in <module>
TypeError: 'dict' object is not callable
我在网上遇到了一些问题,但到现在为止找不到任何东西。
答案 0 :(得分:2)
你可以从字典构建一个集合;该集将初始化为字典中的键集。
但是,在您的情况下,名称set
已绑定到dict值,因此当您编写set
时,您不会获得内置的set类,但是字典。写set = __builtins__.set
以在交互式shell中恢复它。在程序中,请在之前的代码中搜索set =
(或as set
)。
答案 1 :(得分:1)
您正在通过分配屏蔽内置set
。
>>> set = {}
这使得set
名称指向新的字典对象,您不能再将其用作创建新set
对象的内置类型:
>>> test_dict = {1:"one", 2:"two"}
>>> set3 = set(test_dict)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'dict' object is not callable
不要屏蔽built-in names ,只需删除您创建的名称绑定,现在一切正常:
>>> del set # 'undos' the set={} binding
>>> set3 = set(test_dict)
>>> set3
{1, 2}
答案 2 :(得分:1)
您发布的代码在python3和python2下运行没有问题。如果出现此错误,通常意味着您已将set重新分配给另一个对象。你应该再次检查一下代码。
Dim startx, starty, startz, endx, endy, endz As Double
startx = 1.125
starty = 7.25
startz = 0.0
endx = 8.5
endy = 7.25
endz = 0.0
Dim line1(startx, starty, startz, endx, endy, endz) As Object
If True Then
line1.Erased = True
End If
并在python3中:
Python 2.7.9 (default, Apr 13 2015, 11:43:15)
[GCC 4.2.1 Compatible Apple LLVM 6.1.0 (clang-602.0.49)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> test_dict = {1:"one",2:"two"}
>>> set3=set(test_dict)
>>> print set3
set([1, 2])
>>> set3.add(3)
>>> print set3
set([1, 2, 3])
>>> set3.pop()
1