七、类

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

 

posted @ 2024-07-28 07:14  鹤比纷恆红  阅读(33)  评论(0)    收藏  举报