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

打卡第29天:类的定义和方法

知识点回顾:

1.类的定义

2.pass占位语句

3.类的初始化方法

4.类的普通方法

5.类的继承:属性的继承、方法的继承

作业
题目1:定义圆(Circle)类
要求:
1.包含属性:半径 radius。
2.包含方法:
●calculate_area():计算圆的面积(公式:πr²)。
●calculate_circumference():计算圆的周长(公式:2πr)。
3.初始化时需传入半径,默认值为 1。

import math
class 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()
area = circle.calculate_area()
circumference = circle.calculate_circumference()
print(f"圆的面积为{area}")
print(f"圆的周长为{circumference}")

题目2:定义长方形(Rectangle)类
1.包含属性:长 length、宽 width。
2.包含方法:
● calculate_area():计算面积(公式:长×宽)。
● calculate_perimeter():计算周长(公式:2×(长+宽))。
● is_square() 方法,判断是否为正方形(长 == 宽)。
3.初始化时需传入长和宽,默认值均为 1。

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.width
rect = Rectangle()
area = rect.calculate_area()
perimeter = rect.calculate_perimeter()
is_square_result = rect.is_square()
print(f"矩形的面积为:{area}")
print(f"矩形的周长为:{perimeter}")
print(f"矩形是否为正方形:{is_square_result}")

题目3:图形工厂

创建一个工厂函数 create_shape(shape_type, *args),根据类型创建不同图形对象:图形工厂(函数或类)

  • shape_type="circle":创建圆(参数:半径)。
  • shape_type="rectangle":创建长方形(参数:长、宽)。
class Circle:def __init__(self, radius):self.radius = radiusclass Rectangle:def __init__(self, length, width):self.length = lengthself.width = widthdef 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")circle = create_shape("circle", 1)
rectangle = create_shape("rectangle", 2, 3)

@浙大疏锦行

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

相关文章:

  • PDBfixer:蛋白质结构修复工具
  • CVE-2025-3248
  • 华为OD机试真题——区间交集(2025B卷:200分)Java/python/JavaScript/C/C++/GO最佳实现
  • 知识宇宙-职业篇:软件测试工程师
  • Java—— 多线程 第一期
  • 存储引擎系列--LSM不同Compaction策略性能分析对比
  • STM32:Modbus通信协议核心解析:关键通信技术
  • 【大模型面试每日一题】Day 29:简单介绍一下混合精度训练的技术要点及潜在风险
  • Kubernetes Service 类型与实例详解
  • Mybatis中的两个动态SQL标签
  • (先发再改)测试流程标准文档
  • 【面试题】如何测试即时通信功能:A给B发送一条了信息:hello
  • ‌加密 vs 电子签名:公钥私钥的奇妙冒险
  • 大数据学习(121)-sql重点问题
  • IP2366调试问题总结
  • 第12次07 :邮箱的验证
  • 57、【OS】【Nuttx】编码规范解读(五)
  • ET CircularBuffer 类
  • Cadence学习笔记之---PCB过孔替换、封装更新,DRC检查和状态查看
  • 动态贴纸的实时渲染原理:美颜SDK中的特效引擎开发实录
  • 化工厂电动机保护升级记:当Profinet遇上DeviceNet
  • 【数字图像处理】_笔记
  • Webpack 5 模块联邦(Module Federation)详解与实战
  • 多头注意力 vs 单头注意力:计算量与参数量区别
  • MySQL日志文件有哪些?
  • 一、docker安装以及配置加速
  • [免费]SpringBoot+Vue在线教育(在线学习)系统(高级版)【论文+源码+SQL脚本】
  • Python打卡训练营Day37
  • 《仿盒马》app开发技术分享-- 新增地址(端云一体)
  • AI算力网络光模块市场发展分析