0
p type("ddd")
*** TypeError: TypeError("'int' object is not callable",)
!print(type("dd"))
*** TypeError: 'int' object is not callable
type
255
!type
255

有人知道这是为什么吗?它似乎不是 PDB 命令。由于它的名字,搜索答案一直没有成功。

4

2 回答 2

4

发布您的代码。看起来您type用自己的值覆盖了名称,这恰好是一个整数。

于 2012-09-16T20:25:31.787 回答
3

type不是 PDB 命令或在调试会话期间通常不可用。type您的本地或全局命名空间中必须有一个具有整数值的局部变量:

>>> import pdb
>>> pdb.run('None')
> <string>(1)<module>()
(Pdb) type
<type 'type'>
(Pdb) type = 255
(Pdb) type('ddd')
*** TypeError: 'int' object is not callable

被测代码中定义的局部变量:

>>> pdb.run('type = 255; None')
> <string>(1)<module>()
(Pdb) s
> <string>(1)<module>()
(Pdb) type
255

在这些情况下,解决方法是type通过模块引用原始函数__builtins__

(Pdb) type('ddd')
*** TypeError: 'int' object is not callable
(Pdb) __builtins__.type('ddd')
<type 'str'>
于 2012-09-16T20:25:13.827 回答