由于未知原因,无法在python中正常调用函数

时间:2015-04-01 09:12:10

标签: python-2.7

编译错误后:

Traceback (most recent call last):
    File "python", line 29, in <module>
    File "python", line 26, in trip_cost
    TypeError: 'int' object is not callable

以下是我写的支出计算应用程序的代码。最后在trip_cost函数内部传递了四个参数,但在函数定义中定义了四个参数。

def hotel_cost(nights):
    return 140 * nights
def spending_money(money):
    return money
def plane_ride_cost(city):
    if city == "Charlotte":
       return 183
    elif city == "Tampa":
        return 220
    elif city == "Pittsburgh":
        return 222
    elif city == "LosAngeles":
        return 475
def rental_car_cost(days):
    cost = 40 
    if days >= 7:
        return (cost * days - 50)
    elif days >= 3 < 7:
        return (cost * days - 20)
    elif days < 3:
        return (cost * days)
def trip_cost(city,days,spending_money):
    total_trip_cost = plane_ride_cost(city) + rental_car_cost(days) + hotel_cost(days) + spending_money(spending_money)
    return total_trip_cost

print trip_cost("LosAngeles",5,600)

2 个答案:

答案 0 :(得分:2)

您的本地变量spending_money覆盖了spending_money()函数范围内的函数trip_cost

由于spending_money()功能无法执行任何操作,因此您只需直接添加即可。

答案 1 :(得分:0)

def trip_cost(city,days,spending_money):
total_trip_cost = plane_ride_cost(city) + rental_car_cost(days) + hotel_cost(days) + spending_money(spending_money)
return total_trip_cost

在这部分代码上,你要求函数 spend_money(spend_money),问题是变量和函数命名相似,所以python你正在调用函数里面的函数??? 为什么人类对我这样做,我感到困惑,说python

一个好的提示和解决方案是更改变量名称或函数名称。

尝试:

def trip_cost(city,days,travelling_cash): 
total_trip_cost = plane_ride_cost(city) + rental_car_cost(days) +hotel_cost(days) + spending_money(travelling_cash)
return total_trip_cost
欢呼伴侣!