七、类
7.1 创建和使用类
class Dog():
# 一次模拟小狗的简单尝试””"
def_init_(self,name,age):
# "“初始化属性name,age"""
self.name = name
self.age = age
def sit(self):
# ""模拟小狗收到命令时蹲下"”””
print(f"{self.name}is now sitting.")
def roll_over(self):
# 模拟小狗收到命令时打滚”""
print(f"{self.name}rolled over!")
# 创建实例
my_dog = Dog('Willie',6)
# 使用方法
my_dog.sit()
my_dog.roll_over()
print(f"My dog's name is {my_dog.name}.")
print(f"My dog is {my_dog.age} years old.")
7.2 使用类和实例
class Car:
# 一次模拟汽车的简单尝试。
def_init_(self,make,model,year):
# 初始化描述汽车的属性。
self.make = make
self.model=model
self.year=year
def get_descriptive_name(self):
#“返回整洁的描述性信息。
long_name= f"{self.year}{self.make}{self.model}"
return long_name.title()
def read odometer(self):
# 打印一条指出汽车里程的消息””
print(f"This car has {self.odometer_reading}miles on it.")
my new car=Car('audi','a4',2019)
print(my_new_car.get_descriptive_name()
# 2019 Audi A4
#修改属性的值
my_new_car.odometer_reading=23
my_new_car.read_odometer()
7.2.1 通过方法修改属性的值
无须直接访问属性,而可将值传递给方法,由它在内部进行更新
class Car:
# 一次模拟汽车的简单尝试。
def_init_(self,make,model,year):
# 初始化描述汽车的属性。
self.make = make
self.model=model
self.year=year
def get_descriptive_name(self):
#“返回整洁的描述性信息。
long_name= f"{self.year}{self.make}{self.model}"
return long_name.title()
def read odometer(self):
# 打印一条指出汽车里程的消息””
print(f"This car has {self.odometer_reading}miles on it.")
my new car=Car('audi','a4',2019)
print(my_new_car.get_descriptive_name()
# 通过方法修改属性的值
my_new_car.update_odometer(-1)
my_new_car.read_odometer()
# 2019 Audi A4
# You can't roll back an odometer!
# This car has 0 miles on it.
7.3 继承
# 电动汽车类
class ElectricCar(Car): # 括号里要写父类名
# 电动汽车“
def_init_(self,make,model,year):
# 初始化父类的属性
super()._init_(make,model,year) # super函数调用父类
# 创建ElectricCar实例,赋予变量my_tesla
my_tesla=ElectricCar('tesla','model s',2019)
print(my_tesla.get_descriptive_name())
# 2019 Tesla Model S

浙公网安备 33010602011771号