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

DAY32 类的定义与方法

前言:在上一小节中,我们已经完成了有关函数装饰器概念以及用法的描述,今天我们将引入面向对象编程过程中一个十分重要的概念----类,类是创建对象的模板,定义了对象的属性(数据)和方法(功能)。

示例练习:

题目一:定义圆(Circle)类

要求:
1.包含属性:半径radius。
2.包含方法:
(1)calculate_area():计算圆的面积(公式:r2)。
(2)calculate_circumference():计算圆的周长(公式:2r)。
3.初始化时需传入半径,默认值为1。

示例代码:

import math class Circle: def __init__(self, radius=1): self.radius = radius def calculate_area(self): return math.pi * self.radius ** 2 def calculate_circumference(self): return 2 * math.pi * self.radius # 创建半径为 3 的圆 c1 = Circle(3) print(c1.calculate_area()) # 输出面积 print(c1.calculate_circumference()) # 输出周长 # 使用默认半径 1 c2 = Circle() print(c2.calculate_area()) # 输出 π

题目2:定义长方形(Rectangle)类

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

class Rectangle: def __init__(self, length=1, width=1): self.length = length self.width = width def calculate_area(self): return self.length * self.width def calculate_perimeter(self): return 2 * (self.length + self.width) def is_square(self): return self.length == self.width # 创建一个长为5、宽为3的长方形 rect1 = Rectangle(5, 3) print(rect1.calculate_area()) # 输出 15 print(rect1.calculate_perimeter()) # 输出 16 print(rect1.is_square()) # 输出 False # 使用默认值(长=1,宽=1) rect2 = Rectangle() print(rect2.is_square()) # 输出 True # 创建一个正方形(长=4,宽=4) square = Rectangle(4, 4) print(square.is_square()) # 输出 True

题目3:图形工厂

创建一个工厂函数create_shape(shape_type,*args),根据类型创建不同图形对象:图形工厂(函数或类)
shape_type="circle":创建圆(参数:半径)。
shape_type="rectangle":创建长方形(参数:长、宽)。

示例代码:

import math class Circle: def __init__(self, radius): self.radius = radius def calculate_area(self): return math.pi * self.radius ** 2 def __str__(self): return f"Circle(radius={self.radius})" class Rectangle: def __init__(self, length, width): self.length = length self.width = width def calculate_area(self): return self.length * self.width def __str__(self): return f"Rectangle(length={self.length}, width={self.width})" def create_shape(shape_type, *args): if shape_type == "circle": # 参数:半径 if len(args) != 1: raise ValueError("Circle requires exactly 1 argument: radius") return Circle(args[0]) elif shape_type == "rectangle": # 参数:长、宽 if len(args) != 2: raise ValueError("Rectangle requires exactly 2 arguments: length, width") return Rectangle(args[0], args[1]) else: raise ValueError(f"Unknown shape type: {shape_type}") circle = create_shape("circle", 5) print(circle) # Circle(radius=5) print("Area:", circle.calculate_area()) # 面积 # 创建长方形 rectangle = create_shape("rectangle", 4, 6) print(rectangle) # Rectangle(length=4, width=6) print("Area:", rectangle.calculate_area()) # 面积

注意:raise是 Python 中的抛出异常的语法,用于在程序执行过程中主动引发错误。

@浙大疏锦行

http://www.jsqmd.com/news/156739/

相关文章:

  • Proteus 8.0时钟信号源详解:晶振与脉冲发生器配置
  • ModbusRTU通信基础:CRC校验计算完整示例
  • 再也不怕环境冲突:PyTorch-CUDA-v2.6镜像隔离式开发体验
  • PyTorch-CUDA-v2.6镜像与VS Code Remote-SSH协作开发指南
  • 如何导出PyTorch-CUDA-v2.6镜像用于私有部署?操作命令分享
  • PyTorch-CUDA-v2.6镜像中安装自定义Python包的方法
  • 超详细版解析c9511e无法确定toolkit
  • 用%20Portainer%20部署%20Nginx%20很简单?加个%20cpolar%20远程访问更给力
  • 大数据挖掘中的模型漂移检测技术
  • vivado2023.2安装常见问题解析:系统学习手册
  • 【CMake】概述
  • cc2530无线丢包问题的协议层解决方案
  • 远程开发AI模型:SSH连接PyTorch-CUDA-v2.6镜像详细步骤
  • ✅2026最全Java毕业设计选题方向汇总|附难度分级+技术栈建议
  • 【CMake】`set()` 命令详解
  • PyTorch-CUDA-v2.6镜像运行GPT-2文本生成模型实操
  • Opencv总结4——项目实战-信用卡数字识别
  • 快速理解Crash时的堆栈回溯技术要点
  • KiCad原理图打印设置完整示例:精准布局输出技巧
  • PyTorch-CUDA-v2.6镜像中定时备份Jupyter Notebook脚本的方法
  • PyTorch-CUDA-v2.6镜像如何实现多卡并行训练?技术细节曝光
  • WSLRegisterDistribution failed错误终结者:PyTorch-CUDA-v2.6完美兼容WSL2
  • 从零实现CH340 USB转232驱动安装流程
  • 清华镜像源加速下载PyTorch-CUDA-v2.6,解决installing this may take a few minutes问题
  • PyTorch-CUDA-v2.6镜像发布:专为大模型token生成优化的GPU环境
  • 超详细版Screen to GIF音频同步录制教学
  • 【毕业设计】SpringBoot+Vue+MySQL 社区网格化管理平台平台源码+数据库+论文+部署文档
  • Screen to GIF动图制作手把手教程:从捕获到导出
  • 前后端分离社区物资交易互助平台系统|SpringBoot+Vue+MyBatis+MySQL完整源码+部署教程
  • 智能体的记忆管理机制及其潜在风险 | 直播预约