我必须定义一个类Vehicle
。该类的每个对象都有两个属性,license
(车牌)和year
(构造年份),以及两个返回这些属性的方法。
此外,我必须定义一个类Car
,一个Vehicle
的派生类,它还有两个属性dis
(置换)和max
(最大值)车里的人数),用方法知道后两者。
这是我试写的代码:
class vehicle:
def __init__(self,License_plate,Year):
self.license = License_plate
self.year = Year
def year(self):
return self.year
def license(self):
return self.license
class car(vehicle):
def __init__(self,License_plate,Year,Displacement,maximum):
veicolo.__init__(self, License_plate, Year)
self.dis = Displacement
self.max = maximum
def displacement(self):
return self.dis
def max(self):
return self.max
a = vehicle('ASDFE',1234) #This is how I tried to run it
a.year() #Here I got an ERROR :
a.license() #TypeError: 'int' object is not callable
b = car('ASDERTWWW',1234,7000,2340)
b.displacement()
b.max()
我在Python中遇到了一些问题。我无法理解派生类的用法。
答案 0 :(得分:1)
在python中,我们不需要吸气剂和制定者。
class Vehicle(object):
def __init__(self, year):
self.year = year
class Car(Vehicle):
def __init__(self, name, year):
super(Car, self).__init__(year)
self.name = name
a = Vehicle(1995)
print a.year
b = Car("test", 1992)
print b.name
print b.year
答案 1 :(得分:0)
您有一个方法和一个具有相同名称的变量。当您致电a.year()
时,您正试图拨打year
变量。
一种解决方案是重命名其中一个(变量为_year
或方法为getYear
)。或者,您可以直接访问变量。 python中没有什么是私有的,所以你可以>>> a.year
- > 1234