我的代码与此类似。在MyModule.py
中class SomeClass:
@classmethod
def SomeMethod(cls, a, b, c):
return "foo"
然后我有另一个python文件:
cls = getattr(MyModule, "SomeClass")
method = getattr(cls, "SomeMethod")
args = { "a":1, "b": 2, "c": 3 }
res = method(**args)
print "Result: " + res
print "Result type: " + str(type(res))
但是我在行调用类型()上遇到以下错误:
TypeError: 'unicode' object is not callable
为了使事情复杂化,我没有得到这个缩小的例子的错误。关于如何调试这个的任何想法? type()如何生成这样的错误?
答案 0 :(得分:1)
您有一个绑定到unicode值的局部变量str
或type
(或两者)。删除它,该变量掩盖内置的可调用。
您可以使用del str
或del type
删除该引用,并且可以再次使用内置功能。</ p>
或者,使用:
import __builtin__
print "Result type: " + __builtin__.str(__builtin__.type(res))
绝对肯定你正在使用内置插件。