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

DAY 28 类的定义和方法

目录

      • DAY 28 类的定义和方法
        • 1.类的定义
        • 2.pass占位语句
        • 3.类的初始化方法
        • 4.类的普通方法
        • 5.类的继承:属性的继承、方法的继承
        • 作业
          • 题目1:定义圆(Circle)类
          • 题目2:定义长方形(Rectangle)类
          • 题目3:图形工厂

DAY 28 类的定义和方法

1.类的定义
2.pass占位语句
class ClassName:pass
class ClassName:
  Cell In[2], line 1class ClassName:^
IndentationError: expected an indented block
x = 10
if x > 5:pass
else:print('x is not greater than 5')
for i in range(3):pass
try:print('hh')
except SomeError:pass
finally:pass
hh
3.类的初始化方法
class Teacher:def __init__(self):self.name = 'Susan'self.subject = 'English'self.age = 33Teacher = Teacher()print(Teacher.name)
Susan
class Teacher:def __init__(self, name, age):self.name = nameself.age = ageself.subject = 'English'teacher = Teacher('Susan', 33)print(teacher.name)
print(teacher.age)
print(teacher.subject)
Susan
33
English
4.类的普通方法
class Teacher:def __init__(self):self.name = 'Susan'self.subject = 'English'self.age = 33def teach_lesson(self):print('上课中')def criticize(self):print('批评人')t = Teacher()
t.teach_lesson()
t.criticize()print(t.name)
上课中
批评人
Susan
class Teacher:def __init__(self, name, subject, age):self.name = nameself.subject = subjectself.age = agedef teach_lesson(self):print(f'{self.name} 正在教 {self.subject}')def criticize(self, student_name):print(f'{self.name} 正在批评 {student_name}')teacher = Teacher('Susan', 'English', 33)
teacher.teach_lesson()
teacher.criticize('John')
Susan 正在教 English
Susan 正在批评 John
5.类的继承:属性的继承、方法的继承
class Teacher:def __init__(self, name, subject, age):self.name = nameself.subject = subjectself.age = agedef teach_lesson(self):print(f'{self.name} 正在教 {self.subject}')def criticize(self, student_name):print(f'{self.name} 正在批评 {student_name}')class MasterTeacher(Teacher):def __init__(self, name, subject, age, experience_years):super().__init__(name, subject, age)self.experience_years = experience_yearsdef teach_lesson(self):print(f'{self.name} (特级教师)正在用高级方法教授 {self.subject}')def give_lecture(self, topic):print(f'{self.name} 正在举办关于 {topic} 的讲座')master = MasterTeacher('王教授', '数学', 45, 20)
master.teach_lesson()
master.criticize('李同学')
master.give_lecture('微积分')
王教授 (特级教师)正在用高级方法教授 数学
王教授 正在批评 李同学
王教授 正在举办关于 微积分 的讲座
class Animal:def __init__(self, name, age):self.name = nameself.age = agedef speak(self):print(f'{self.name} 发出声音')class Dog(Animal):def speak(self):super().speak()print('汪汪叫')dog = Dog('旺财', 3)
dog.speak()
旺财 发出声音
汪汪叫
作业
题目1:定义圆(Circle)类
import mathclass Circle:def __init__(self, radius=1):self.radius = radiusdef calculate_area(self):return math.pi * self.radius**2def calculate_circumference(self):return 2 * math.pi * self.radiuscircle = Circle(5)print(f'半径: {circle.radius}')
print(f'面积: {circle.calculate_area():.2f}')
print(f'周长: {circle.calculate_circumference():.2f}')
半径: 5
面积: 78.54
周长: 31.42
题目2:定义长方形(Rectangle)类
class Rectangle:def __init__(self, length=1, width=1):self.length = lengthself.width = widthdef calculate_area(self):return self.length * self.widthdef calculate_perimeter(self):return 2 * (self.length + self.width)def is_square(self):return self.length == self.widthrect = Rectangle(4, 6)
square = Rectangle(5, 5)print(f'长: {rect.length}, 宽: {rect.width}')
print(f'面积: {rect.calculate_area()}')
print(f'周长: {rect.calculate_perimeter()}')
print(f'是否为正方形: {rect.is_square()}')
print(f'是否为正方形: {square.is_square()}')
长: 4, 宽: 6
面积: 24
周长: 20
是否为正方形: False
是否为正方形: True
题目3:图形工厂
def create_shape(shape_type, *args):if shape_type == 'circle':return Circle(*args)elif shape_type == 'rectangle':return Rectangle(*args)else:raise ValueError('Invalid shape type')shape1 = create_shape('circle', 5)
shape2 = create_shape('rectangle', 3, 4)print(f'{shape1.calculate_circumference():.2f}')
print(shape2.is_square())
31.42
False

@浙大疏锦行

http://www.xdnf.cn/news/13438.html

相关文章:

  • 三代社保卡全字段识别-社保卡识别软件-社保卡识别接口集成
  • 结合redis实现文件分片秒传断点续传
  • Linuxkernel学习-deepseek-2
  • Java-43 深入浅出 Nginx - 基本配置方式 nginx.conf Events块 HTTP块 反向代理 负载均衡
  • idea不同颜色总结
  • 【深尚想】LTR-390UV-01光宝环境光传感器电子元器件详细解析
  • HDFS 中 DataNode 挂载外部 S3 存储系统作为本地卷
  • 迁移科技3D视觉系统:开启袋子拆垛场景的智能革命新纪元
  • 53、错误处理-【源码分析】底层组件功能分析
  • Kafka消费者组位移重设指南
  • 从0到1掌握Sqoop:开启大数据迁移之旅
  • 爬取新浪新闻网的全部策略
  • 【kafka】rebalance机制详解
  • 基于GNU Radio Companion安装和搭建的简易FMRadio
  • Node.js版本管理
  • Contos7yum停服
  • latch/ff的电路结构及setup/hold/tpd、clkWidht/recovery/remove
  • Dexcap复现代码运行逻辑全流程(二)——realsense T265测试使用
  • 【学习笔记】RTSP-Ovnif-GB28181
  • vtk 对stl文件进行降采样
  • 鹰盾播放器AI识别字幕技术栈解析:从视频帧处理到语义理解的全流程实现
  • 工作总结及记录
  • vim的相关命令 + 三种模式(10)
  • Java异步编程难题
  • 保险丝的作用、基本参数和选型
  • vite原理
  • 智慧航空 | 飞机引擎设备拆解可视化
  • pysnmp模块中 GET、SET、WALK操作详细分步解析
  • 【Java】【力扣】121.买卖股票的最佳时机
  • 分布式I/O在食品包装行业中的应用