假设我有一个名为test
的函数,如下所示:
def test(X,W):
..do stuff
return stuff
我使用model = test(X,W)
调用。
当我第一次调用该函数时,我没有收到错误。但是,如果我再次调用该函数,则会收到错误'Tensor' object is not callable
。基本上,调用代码如下所示:
model = test(X,W)
model1 = test(X,W)
我在model1
的电话中收到了错误消息。
我想在再次调用该函数之前不需要再次重新定义该函数。经过一段时间的研究,我仍然没有找到解决方案。
如何修改我的功能或调用它以便能够调用该功能?
答案 0 :(得分:2)
如果你命名一个与你的函数相同的变量(在“....更多东西在这里”部分),我可以看到这种情况会发生这种情况,这意味着它会在你第一次调用时工作,但会失败第二次。采用以下简化示例:
def test(x,y):
global test
test = x / 2 # random calculation
return x + y
model = test(5,5)
model1 = test(10,10)
这会产生与问题中的错误非常相似的错误:
Traceback (most recent call last):
File "SO.py", line 43, in <module>
mode2 = test(10,10)
TypeError: 'float' object is not callable
解决方案是避免命名变量与函数相同。