如何解决类型错误:'int' 对象不可调用,为 diff 变量分配相同的名称?
我已经解决这个问题几个小时了,我似乎给一个整数变量和一个函数命名了相同的名字,但我只是不知道我给哪个变量/函数分配了相同的名称。这是发生错误的函数:
def Automatic(fee):
excel_file = "stocklist.xlsx"
data = pd.read_excel(excel_file)
#print(data)
L = data["Unnamed: 0"].tolist()
print("Stock list generated:",L)
p = []
print("Transaction fee: ",fee*100,"%")
print('----------------------------------------')
for i in range(len(L)):
p.append(float(stock_info.get_live_price(L[i])))
print("Current price of "+L[i]+": ",p[i])
print('----------------------------------------')
return [L,p]
终端出现的错误是:
<ipython-input-35-df30698b28ab> in Automatic(fee)
156 print("Transaction fee: ","%")
157 print('----------------------------------------')
--> 158 for i in range(len(L)):
159 p.append(float(stock_info.get_live_price(L[i])))
160 print("Current price of "+L[i]+": ",p[i])
TypeError: 'int' object is not callable
编辑:当我执行打印(类型(范围))时,它返回类,所以我想这就是问题所在,有没有人知道这个实例在包 xpress 中的位置?我没有为任何 int 变量分配名称“范围”。
解决方法
问题在于 xpress
包定义了诸如 leq
、geq
、eq
和 range
之类的常量来指定约束的类型(=、== 或范围)。
如果您只是从包中导入所有内容,那么这将使用整数常量(在本例中为 4)覆盖 range
的内置定义。
所以最好通过做类似的事情来限制你拉入命名空间的东西
from xpress import leq,geq,eq,problem
或者任何你需要的东西。我们只是做
import xpress as xp
并通过添加 xp.
来限定所有与 xpress 相关的内容。这样做的好处是可以立即清楚地知道您正在调用与 xpress 相关的函数。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。