【问题标题】:Not callable string object不可调用的字符串对象
【发布时间】:2013-11-07 11:56:54
【问题描述】:
def power(num,div):
    incre =0 
    while(num%div == 0):
        num = num/div
        incre +=1
    return incre
test_case = int(raw_input())

lim = 0

while lim  < test_case:
    power = (raw_input())
    x = power.split()
    a = int(x[0])
    b = int(x[1])
    lim +=1
print power(a,b)

在出现此错误之前,Python 一直正常工作。

【问题讨论】:

  • 哪个错误?你能解释更多吗?

标签: python string python-2.7 typeerror


【解决方案1】:

raw_input 总是返回一个字符串对象。因此,这一行:

power = (raw_input())

使power 成为一个字符串。此外,当这种情况发生时,它会覆盖您的函数power

当你到达这一点时:

print power(a,b)

power 是一个字符串,当您尝试像调用函数一样调用它时会出错。

要解决此问题,请重命名函数或字符串。他们都不能命名为power

【讨论】:

  • 谢谢,power函数我之前做了,只是复制了,下次用import from
  • 当你给这两个东西取同名时,问题就出现了。导入将无济于事,除非函数属于某个包,在这种情况下,例如,您将调用 myfunctions.power(a,b)。在这种情况下,命名空间不同,并且没有冲突。
  • @user2688772 即使你将power 导入你的命名空间,如果你用一个字符串覆盖它,你也会得到同样的错误。您需要将电源字符串命名为其他名称。
猜你喜欢
  • 2012-07-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-08-23
  • 2020-10-15
相关资源
最近更新 更多