如何覆盖在其父类中使用的子类中的属性?

时间:2019-02-16 13:27:10

标签: python python-3.x class attributes parent-child

class Car():
    """A simple attempt to represent a car."""

    def __init__(self, make, model, year):
        self.make = make
        self.model = model
        self.year = year
        self.odometer_reading = 0

    def get_descriptive_name(self):
        long_name = str(self.year) + " " + self.make + " " + self.model
        return long_name.title()

class ElectricCar(Car):
    """Represent aspects of a car, specific to electric vehicles."""

    def __init__(self, make, model, year):
        """Initialize attributes of the parrent class."""

        super().__init__(make, model, year)


my_tesla = ElectricCar('tesla', 'model s', 2016)
print(my_tesla.get_descriptive_name())

如何从year中删除属性class ElectricCar(Car)? 我希望属性year仍在父类class Car()中,但要从子类中删除。

1 个答案:

答案 0 :(得分:1)

是的,可以,但是这样做是不正确的。如果java version: "1.8.0_151" Tomcat version: "8.0.53" 中不应该使用year,则它必须在另一个类或对象的某个位置。将某些内容放在父项中并将其删除在孩子中是不正确的。但顺便说一下,您可以这样做:

ElectricCar
  

请注意,删除年份会提高class ElectricCar(Car): def __init__(self, make, model, year): super().__init__(make, model, year) del self.year 中的AttributeError。因为没有年份。