TypeError:\uuInit_Uu()缺少2个必需的位置参数。为什么_init()在那里时缺少参数?

2024-06-10 02:54:07 发布

您现在位置:Python中文网/ 问答频道 /正文

class Vehicle:
    def __init__(self,vehicle_cost,vehicle_type):
        self.__vehicle_id =None
        self.__vehicle_type=vehicle_type
        self.__vehicle_cost=vehicle_cost
        self.__premium_amount=None


    def set_vehicle_id(self,vehicle_id):
        self.__vehicle_id=vehicle_id

    def get_vehicle_id(self):
        return self.__vehicle_id

    def set_vehicle_type(self,vehicle_type):
        self.__vehicle_type=vehicle_type

    def get_vehicle_type(self):
        return self.__vehicle_type

    def set_vehicle_cost(self,vehicle_cost):
        self.__vehicle_cost=vehicle_cost

    def get_vehicle_cost(self):
        return self.__vehicle_cost

    def set_premium_amount(self,premium_amount):
        self.__premium_amount=premium_amount

    def get_premium_amount(self):
        return self.__premium_amount

    def display_vehicle_details(self):
            print("Vehicle Id is",self.__vehicle_id)
            print("Vehicle Type is",self.__vehicle_type)
            print("Vehicle Cost is",self.__vehicle_cost)

    def calculate_premium(self):
        if(self.__vehicle_type =="Two Wheeler"):
            self.__premium_amount=self.__vehicle_cost-self.__vehicle_cost*0.98
            print(self.__premium_amount)
        elif(self.__vehicle_type =="Four Wheeler"):
            self.__premium_amount=self.__vehicle_cost-self.__vehicle_cost*0.94
            print(self.__premium_amount)
        else:
            print("Error: Wrong Vehicle type")


obj=Vehicle(105000, "Two Wheeler")
obj.calculate_premium()

Tags: selfidgetreturnisdeftypeamount
2条回答

如果u停止通过init方法传递任何值,那么每个属性都初始化为None,然后只依赖set方法将值传递给属性,这可能会解决问题。在

class Vehicle:

    def __init__(self):
        self.__vehicle_id =None
        self.__vehicle_type=None
        self.__vehicle_cost=None
        self.__premium_amount=None


    def set_vehicle_id(self,vehicle_id):
        self.__vehicle_id=vehicle_id

    def get_vehicle_id(self):
        return self.__vehicle_id

    def set_vehicle_type(self,vehicle_type):
        self.__vehicle_type=vehicle_type

    def get_vehicle_type(self):
        return self.__vehicle_type

    def set_vehicle_cost(self,vehicle_cost):
        self.__vehicle_cost=vehicle_cost

    def get_vehicle_cost(self):
        return self.__vehicle_cost

    def set_premium_amount(self,premium_amount):
        self.__premium_amount=premium_amount

    def get_premium_amount(self):
        return self.__premium_amount

    def display_vehicle_details(self):
        print("Vehicle Id is",self.__vehicle_id)
        print("Vehicle Type is",self.__vehicle_type)
        print("Vehicle Cost is",self.__vehicle_cost)

    def calculate_premium(self):
        if(self.__vehicle_type =="Two Wheeler"):
            self.__premium_amount=self.__vehicle_cost-self.__vehicle_cost*0.98
            print(self.__premium_amount)
        elif(self.__vehicle_type =="Four Wheeler"):
            self.__premium_amount=self.__vehicle_cost-self.__vehicle_cost*0.94
            print(self.__premium_amount)
        else:
            print("Error: Wrong Vehicle type")

我这边没有错误。你的代码是正确的,它给了我2100.0的输出。在

尝试重命名文件,创建一个扩展名为.py的新文件,并使用python运行文件名.py在控制台上执行命令,而不是直接在控制台上尝试。在

相关问题 更多 >