陷入困惑!!首先观察这个功能:
def tax(amt):
if amt < 241:
r = 0
elif amt < 481:
r = amt * 0.15
else:
r = amt * 0.28
return r
def net(amt):
return amt - tax(amt)
现在,当我一次只调用一个这样的函数时,如下所示,那么输出成功出来没有任何错误:
print('enter The Grosspay')
r = int(raw_input())
net_pay = net(r)
print(net_pay)
但是,如果我将这两个函数一起调用,如下所示,那么错误会弹出一条消息,即&#34;浮动对象不可调用&#34;
print('enter The Grosspay')
r = int(raw_input())
tax = tax(r)
net_pay = net(r)
print("tax: " + str(tax) + "\t" + "net payment: " + str(net_pay))
答案 0 :(得分:4)
您不能使用相同的名称来表示函数和float。
此行创建全局名称tax
并将其绑定到函数:
def tax(amt):
此行创建全局名称tax
并将其绑定到浮点数:
tax=tax(r)
第二个绑定(浮动)会破坏第一个绑定(到一个函数)。稍后,当net
调用tax()
时,您将收到错误“float object is not callable”。
解决方案:为您的函数和变量赋予不同的名称。