一次调用两个定义函数时的矛盾输出

时间:2016-05-05 22:59:12

标签: python function

陷入困惑!!首先观察这个功能:

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))

1 个答案:

答案 0 :(得分:4)

您不能使用相同的名称来表示函数和float。

此行创建全局名称tax并将其绑定到函数:

def tax(amt):

此行创建全局名称tax并将其绑定到浮点数:

tax=tax(r)

第二个绑定(浮动)会破坏第一个绑定(到一个函数)。稍后,当net调用tax()时,您将收到错误“float object is not callable”。

解决方案:为您的函数和变量赋予不同的名称。