了解 Python 中的 类?
Understand classes in Python?
我必须定义一个class Vehicle
。 class的每个对象都有两个属性,license
(车牌)和year
(建造年份),以及return这些属性的两个方法。
此外,我必须定义一个 class Car
,一个从 Vehicle
派生的 class,它还有两个属性,dis
( displacement)和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 中遇到 class 的问题。我无法理解派生class.
的用法
您有一个同名的方法和变量。当您调用 a.year()
时,您正在尝试调用 year
变量。
一个解决方案是重命名其中一个(变量重命名为 _year
或方法重命名为 getYear
)。或者,您可以直接访问变量。 python 中没有什么是私有的,所以你可以只做 >>> a.year
-> 1234
在 python 中我们不需要 getter 和 setter。
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
我必须定义一个class Vehicle
。 class的每个对象都有两个属性,license
(车牌)和year
(建造年份),以及return这些属性的两个方法。
此外,我必须定义一个 class Car
,一个从 Vehicle
派生的 class,它还有两个属性,dis
( displacement)和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 中遇到 class 的问题。我无法理解派生class.
的用法您有一个同名的方法和变量。当您调用 a.year()
时,您正在尝试调用 year
变量。
一个解决方案是重命名其中一个(变量重命名为 _year
或方法重命名为 getYear
)。或者,您可以直接访问变量。 python 中没有什么是私有的,所以你可以只做 >>> a.year
-> 1234
在 python 中我们不需要 getter 和 setter。
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