【发布时间】:2021-04-21 10:10:58
【问题描述】:
我尝试稍微更改一下代码,但没有奏效。 无论如何,这是代码。
class Car:
def __init__(self,model,name,year):
self.name=name
self.model=model
self.year=year
self.Class='normal'
self.odometer=0
def descriptive_name(self):
return f'{self.year} {self.name} {self.model}'
def type(self):
return self.Class
def odometer_reading(self):
return self.odometer
class Battery:
def __init__(self):
self.capacity='75 kwh'
def get_capacity(self):
return self.capacity
class Electric_car:
def __init__(self,model,name,year):
super(Car()).__init__(model,name,year)
self.battery=Battery()
self.Class='Electric_car'
def my_battrey(self):
return self.battery.get_capacity()
上面的代码和下面的代码在同一个目录下。 将上面的代码命名为 main.py 并在同一目录中将下面的代码写入新文件并尝试运行它。
import main
my_scorpio=main.Car('s','scorpio',2019)
print(my_scorpio.descriptive_name())
print(my_scorpio.odometer_reading())
print(my_scorpio.type())
my_tesla=main.Electric_car('s','Tesla',2019)
print(my_tesla.descriptive_name())
print(my_tesla.odometer_reading)
print(my_tesla.type())
print(my_tesla.my_battrey())
【问题讨论】:
-
那么问题到底是什么?
-
继承使用:
class ClassName(InheritedClass):,然后使用super()也可以使用:InheritedClass.__init__(self, attributes) -
如果你使用
super,你应该有一个超类。 -
class Electric_car(Car):(我将其重命名为class ElectricCar(Car):)+super().__init__(model, name, year)?
标签: python python-3.x class oop