使用类和实例
创建一个Car类,包括3个形参:品牌、型号、出厂年份
classCar():
def __init__(self,make,model,year):
self.make=make
self.model=model
self.year=year
def get_descriptive_name(self):
long_name= str(self.year) + ' ' + self.make + ' ' +self.modelreturnlong_name.title()
my_new_car= Car('audi','a4',2018)
print(my_new_car.get_descriptive_name())
输出2018 Audi A4
定义一个get_descriptive_name的方法,使用属性make、model、year创建一个描述汽车的字符串,根据Car类,创建一个实例,并保存到my_new_car中。调用get_descriptive_name方法,指出我们拥有一辆什么样的汽车。
给属性指定默认值
classCar():
def __init__(self,make,model,year):
self.make=make
self.model=model
self.year=year
self.odometer_reading= 0def get_descriptive_name(self):
long_name= str(self.year) + ' ' + self.make + ' ' +self.modelreturnlong_name.title()
def read_odometer(self):
print("This car has" + str(self.odometer_reading) + 'miles on it')
my_new_car= Car('audi','a4',2018)
print(my_new_car.get_descriptive_name())
my_new_car.read_odometer()
输出2018Audi A4
This car has0 miles on it
self.odometer_reading = 0 我们定义了汽车里程数的初始值为0,但是出售时里程表书为0的汽车并不多,所以我们需要一个修改属性的值的途径
修改属性的值
1.直接修改属性的值
classCar():
def __init__(self,make,model,year):
self.make=make
self.model=model
self.year=year
self.odometer_reading= 0def get_descriptive_name(self):
long_name= str(self.year) + ' ' + self.make + ' ' +self.modelreturnlong_name.title()
def read_odometer(self):
print("This car has" + str(self.odometer_reading) + 'miles on it')
my_new_car= Car('audi','a4',2018)
print(my_new_car.get_descriptive_name())
my_new_car.odometer_reading= 23my_new_car.read_odometer()
输出2018Audi A4
This car has23 miles on it
直接访问并设置汽车的属性odometer_reading,这行代码让Python在实例my_new_car中找到属性odometer_reading,并将该属性的值设置为23
2.通过方法修改属性的值
classCar():
def __init__(self,make,model,year):
self.make=make
self.model=model
self.year=year
self.odometer_reading= 0def get_descriptive_name(self):
long_name= str(self.year) + ' ' + self.make + ' ' +self.modelreturnlong_name.title()
def read_odometer(self):
print("This car has" + str(self.odometer_reading) + 'miles on it')
def upadte_odometer(self,mileage):
self.odometer_reading=mileage
my_new_car= Car('audi','a4',2018)
print(my_new_car.get_descriptive_name())
my_new_car.upadte_odometer(23)
my_new_car.read_odometer()
输出2018Audi A4
This car has23 miles on it
在Car类中添加一个新方法update_odometer(),这个方法接受一个里程值, 并将其存储到self.odometer_reading 中。我们调用了update_odometer() ,并向它提供了实参23(该实参对应于方法定义中的形参mileag)
3.通过方法对属性的值进行递增
classCar():
def __init__(self,make,model,year):
self.make=make
self.model=model
self.year=year
self.odometer_reading= 0def get_descriptive_name(self):
long_name= str(self.year) + ' ' + self.make + ' ' +self.modelreturnlong_name.title()
def read_odometer(self):
print("This car has" + str(self.odometer_reading) + 'miles on it')
def upadte_odometer(self,mileage):
self.odometer_reading=mileage
def increment_odometer(self,miles):
self.odometer_reading+=miles
my_new_car= Car('subaru','outback',2019)
print(my_new_car.get_descriptive_name())
my_new_car.upadte_odometer(23500)
my_new_car.read_odometer()
my_new_car.increment_odometer(100)
my_new_car.read_odometer()
输出
This car has23500miles on it
This car has23600 miles on it
定义一个新方法increment_odometer(),并将其加入到self.odometer_reading 中,调用increment_odometer()方法传入100