首页 > 解决方案 > Python 函数类和 __init__

问题描述

我目前有这个代码

class Vehicle:
    def __init__(self, make, model, yearOfManufacture, mileage):
        self.make = make
        self.model = model
        self.yearOfManufacture = yearOfManufacture
        self.mileage = mileage

    def get_make(self):
        return self.make

    def get_model(self):
        return self.model

    def get_year(self):
        return self.yearOfManufacture

    def get_mileage(self):
        return self.mileage

    def set_make(self, make):
        self.make = make

    def set_model(self, model):
        self.model = model

    def set_year(self, yearManufacure):
        self.yearOfManufacture = yearManufacure

    def setmileage(self, mileage):
        self.mileage = mileage

    def __str__(self):
        return append.(self.__dict__)

vehicle1 = Vehicle("Honda", "Civic", 2014, 50000);
print(vehicle1)
print("The mileage of this vehicle is:", vehicle1.get_mileage())
vehicle1.set_year(2012)
print("The year of manufacture of this vehicle is:", vehicle1.get_year())

输出为

{'make': 'Honda', 'model': 'Civic', 'yearOfManufacture': 2014, 'mileage': 50000}
The mileage of this vehicle is: 50000
The year of manufacture of this vehicle is: 2012

我怎样才能让它显示为

Make: Honda; Model: Civic; Year of Manufacture: 2014; Mileage: 50000
The mileage of this vehicle is: 50000
The year of manufacture of this vehicle is: 2012

标签: pythonfunctionclass

解决方案


__str__魔法方法改成如下:

def __str__(self):
    return f"Make: {self.make}; Model: {self.model}; Year of manufacture: {self.yearOfManufacture}; Mileage: {self.mileage}"

输出:

Make: Honda; Model: Civic; Year of manufacture: 2014; Mileage: 50000
The mileage of this vehicle is: 50000
The year of manufacture of this vehicle is: 2012

推荐阅读