理解Python中的类?

时间:2015-02-03 11:18:55

标签: python class typeerror derived-class

我必须定义一个类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中遇到了一些问题。我无法理解派生类的用法。

2 个答案:

答案 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