微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

类型错误:'int' 对象不可调用,为 diff 变量分配相同的名称?

如何解决类型错误:'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 包定义了诸如 leqgeqeqrange 之类的常量来指定约束的类型(=、== 或范围)。 如果您只是从包中导入所有内容,那么这将使用整数常量(在本例中为 4)覆盖 range 的内置定义。

所以最好通过做类似的事情来限制你拉入命名空间的东西

from xpress import leq,geq,eq,problem

或者任何你需要的东西。我们只是做

import xpress as xp

并通过添加 xp. 来限定所有与 xpress 相关的内容。这样做的好处是可以立即清楚地知道您正在调用与 xpress 相关的函数。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。