当前位置: 首页 > news >正文

7.11类

在这里插入图片描述

一:创建和使用类

1.创建 Dog 类

class Dog:def __init__(self,name,age):  # 前后是两个下划线## 初始化属性 name 和 ageself.name=nameself.age=agedef sit(self):## 模拟小狗收到命令时坐下print(f'{self.name} is now sitting')def roll_over(self):## 模拟小狗收到命令时打滚print(f'{self.name} rolled over!')
1.1 init() 方法

在这里插入图片描述

2.根据类创建实例

class Dog:def __init__(self,name,age):## 初始化属性 name 和 ageself.name=nameself.age=agedef sit(self):## 模拟小狗收到命令时坐下print(f'{self.name} is now sitting')def roll_over(self):## 模拟小狗收到命令时打滚print(f'{self.name} rolled over!')my_dog=Dog('haha',6)
print(f'My dog\'s name is {my_dog.name}')
print(f'My dog is {my_dog.age} years old.')
My dog's name is haha
My dog is 6 years old.
2.1 访问属性

在这里插入图片描述

2.2调用方法
my_dog=Dog('haha',6)
my_dog.sit()
my_dog.roll_over()
haha is now sitting
haha rolled over!
3.创建多个实例
my_dog=Dog('haha',6)
your_dog=Dog('heihei',3)print(f'My dog\'s name is {my_dog.name}')
print(f'My dog is {my_dog.age} years old.')
my_dog.sit()print(f'\nYour dog\'s name is {your_dog.name}')
print(f'Your dog is {your_dog.age} years old.')
your_dog.sit()
My dog's name is haha
My dog is 6 years old.
haha is now sittingYour dog's name is heihei
Your dog is 3 years old.
heihei is now sitting

二:使用类和实例

1.Car 类

class Car:def __init__(self,make,model,year):## 初始化描述汽车的属性self.make=makeself.model=modelself.year=yeardef get_des_name(self):## 返回格式规范的描述性信息long_name=f'{self.year} {self.make} {self.model}'return long_namemy_car = Car('audi', 'a4', 2024)
print(my_car.get_des_name())
2024 audi a4

2.给属性指定默认值

在这里插入图片描述

class Car:def __init__(self,make,model,year):## 初始化描述汽车的属性self.make=makeself.model=modelself.year=yearself.odometer_reading = 0  ## 给属性指定默认值def get_des_name(self):## 返回格式规范的描述性信息long_name=f'{self.year} {self.make} {self.model}'return long_namedef read_od(self):## 打印一条指出汽车行驶里程的消息print(f'This car has {self.odometer_reading}  miles on it.')  ## 必须加上selfmy_car = Car('audi', 'a4', 2024)
print(my_car.get_des_name())
my_car.read_od()
2024 audi a4
This car has 0  miles on it.

3.修改属性的值

3.1直接通过实例修改

3.2通过方法设置

3.3通过方法递增(增加特定的值)

3.1直接通过实例修
my_car = Car('audi', 'a4', 2024)
print(my_car.get_des_name())# 通过实例修改属性的值
my_car.odometer_reading = 23
my_car.read_od()
2024 audi a4
This car has 23  miles on it.
3.2通过方法设置
class Car:def __init__(self,make,model,year):## 初始化描述汽车的属性self.make=makeself.model=modelself.year=yearself.odometer_reading = 0  ## 给属性指定默认值def get_des_name(self):## 返回格式规范的描述性信息long_name=f'{self.year} {self.make} {self.model}'return long_namedef read_od(self):## 打印一条指出汽车行驶里程的消息print(f'This car has {self.odometer_reading}  miles on it.')  ## 必须加上selfdef revise_od(self,odometer_reading):## 将里程表读数设置为指定的值self.odometer_reading=odometer_readingmy_car = Car('audi', 'a4', 2024)
print(my_car.get_des_name())## 通过方法设置属性的值
my_car.revise_od(66)
my_car.read_od()
2024 audi a4
This car has 66  miles on it.

在这里插入图片描述

3.3通过方法递增(增加特定的值)
class Car:def __init__(self,make,model,year):## 初始化描述汽车的属性self.make=makeself.model=modelself.year=yearself.odometer_reading = 0  ## 给属性指定默认值def get_des_name(self):## 返回格式规范的描述性信息long_name=f'{self.year} {self.make} {self.model}'return long_namedef read_od(self):## 打印一条指出汽车行驶里程的消息print(f'This car has {self.odometer_reading}  miles on it.')  ## 必须加上selfdef revise_od(self,mile):## 将里程表读数设置为指定的值#self.odometer_reading=odometer_readingif mile >= self.odometer_reading:self.odometer_reading=mileelse:print('You can\'t roll back an odometer!')def incre_od(self,mile):## 让里程表读数增加指定的量self.odometer_reading += milemy_car = Car('audi', 'a4', 2024)
print(my_car.get_des_name())## 通过方法设置属性的值
my_car.incre_od(55)
my_car.read_od()
2024 audi a4
This car has 55  miles on it.

三:继承

在这里插入图片描述

1.子类的 init() 方法

在这里插入图片描述

## 父类class Car:def __init__(self,make,model,year):## 初始化描述汽车的属性self.make=makeself.model=modelself.year=yearself.odometer_reading = 0  ## 给属性指定默认值def get_des_name(self):## 返回格式规范的描述性信息long_name=f'{self.year} {self.make} {self.model}'return long_namedef read_od(self):## 打印一条指出汽车行驶里程的消息print(f'This car has {self.odometer_reading}  miles on it.')  ## 必须加上selfdef revise_od(self,mile):## 将里程表读数设置为指定的值#self.odometer_reading=odometer_readingif mile >= self.odometer_reading:self.odometer_reading=mileelse:print('You can\'t roll back an odometer!')def incre_od(self,mile):## 让里程表读数增加指定的量self.odometer_reading += mile## 子类class Elecar(Car):  ## 继承Cardef __init__(self,make,model,year):## 初始化父类的属性super().__init__(make,model,year)## 实例化子类
my_elcar=Elecar('heihi','biyadi',2024)
print(my_elcar.get_des_name())
2024 heihi biyadi

在这里插入图片描述

2.给子类定义属性和方法

class Elecar(Car):  ## 继承Cardef __init__(self,make,model,year):## 初始化父类的属性super().__init__(make,model,year)## 初始化电动汽车特有的属性self.battery_size = 40def des_battery(self):## 打印一条描述电池容量的消息print(f'This car has a {self.battery_size}-kWh battery.')my_elcar=Elecar('heihi','biyadi',2024)
print(my_elcar.get_des_name())
my_elcar.des_battery()
2024 heihi biyadi
This car has a 40-kWh battery.

3.重写父类中的方法

在这里插入图片描述

4.将实例用作属性

# Battery 的类class Battery:def __init__(self,battery_size=40):## 初始化电池的属性self.battery_size=battery_sizedef des_battery(self):## 打印一条描述电池容量的消息print(f'This car has a {self.battery_size}-kWh battery.')def get_range(self):if self.battery_size == 40:range=150elif self.battery_size==65:range=225print(f'This car can go about {range} miles on a full charge.')class Elecar(Car):  ## 继承Cardef __init__(self,make,model,year):## 初始化父类的属性super().__init__(make,model,year)## 初始化电动汽车特有的属性self.battery = Battery()my_elcar=Elecar('heihi','biyadi',2024)
print(my_elcar.get_des_name())
my_elcar.battery.des_battery()  ##
my_elcar.battery.get_range()
2024 heihi biyadi
This car has a 40-kWh battery.
This car can go about 150 miles on a full charge.

四:导入类

1.导入单个类

在这里插入图片描述

在这里插入图片描述

2.在一个模块中存储多个类

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

3.从一个模块中导入多个类

在这里插入图片描述

4.导入整个模块

在这里插入图片描述

5.导入模块中的所有类

在这里插入图片描述

6.在一个模块中导入另一个模块

在这里插入图片描述

七:类的编程风格

在这里插入图片描述

http://www.dtcms.com/a/274024.html

相关文章:

  • 上位机知识篇---端口
  • CSS和CSS3区别对比
  • Day58
  • 深度学习篇---松科TPU部署代码分析
  • 线程邮箱(线程间通信的异步缓存机制)
  • 数据分析师如何构建自己的底层逻辑?
  • 数据结构自学Day5--链表知识总结
  • 基于FP6195的60V宽压输入降压电源方案 - 适用于智能家居模块供电
  • 亚洲零售行业发展趋势洞察
  • P5709 【深基2.习6】Apples Prologue / 苹果和虫子
  • Python—文件操作
  • 从语音识别到智能助手:Voice Agent 的技术进化与交互变革丨Voice Agent 学习笔记
  • Django 模型(Model)
  • k8s服务发布进阶
  • k8s-高级调度(一)
  • k8s深度讲解:无限的扩展性 - CRD 与 Operator
  • Rust 变量遮蔽(Variable Shadowing)
  • Rust与UE5高效集成实战
  • 湖南群狼市场调查——专注汽车销售服务深度评测
  • 如何快速学习GO语言
  • ajax和XMLHttpRequest以及fetch
  • Rust基础-part2-变量和可变类型
  • C#中的设计模式:构建更加优雅的代码
  • 学弟让我帮忙写一个学生管理系统的后端,我直接上科技
  • 数据结构 之 【链式二叉树】(C语言实现二叉树的前序中序后序层序遍历,节点个数、树的高度、第K层的节点个数、查找、完全二叉树的判别、销毁创建二叉树)
  • 操作系统-进程
  • 加工进化论:SPL 一键加速日志转指标
  • 适配多场景,工业显示器让操作更高效
  • 2025最新版Docker讲解/面试/命令/容器化技术
  • 当信任上链解码区块链溯源系统开发逻辑与产业变革