news 2026/1/22 2:31:05

DAY32 类的定义与方法

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
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 中的抛出异常的语法,用于在程序执行过程中主动引发错误。

@浙大疏锦行

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/1/14 17:01:13

适用于远程教学的proteus8.16下载安装教程操作指南

手把手教你搭建远程电子实验环境:Proteus 8.16 安装全解析你有没有遇到过这样的情况?学生在家上《单片机原理》课,老师讲得头头是道,可一到动手环节——“老师,我装不上 Proteus!”、“仿真打不开&#xff…

作者头像 李华
网站建设 2025/12/31 11:23:47

AI初创团队必备:PyTorch-CUDA-v2.6镜像标准化开发环境

AI初创团队必备:PyTorch-CUDA-v2.6镜像标准化开发环境 在人工智能研发一线摸爬滚打过的工程师都懂,真正卡住项目进度的往往不是模型设计本身,而是那个看似简单却总出问题的环节——“环境装好了吗?” 设想一下:新同事…

作者头像 李华
网站建设 2026/1/21 20:47:53

揭秘AI原生应用中自然语言理解的技术架构

揭秘AI原生应用中自然语言理解的技术架构 关键词:自然语言理解(NLU)、AI原生应用、意图识别、实体抽取、语义解析、Transformer、多模态融合 摘要:在AI原生应用(如智能助手、AI客服、内容生成工具)中,自然语言理解(NLU)是让机器“听懂”人类语言的核心技术。本文将以“…

作者头像 李华
网站建设 2025/12/31 6:03:08

远程开发AI模型:SSH连接PyTorch-CUDA-v2.6镜像详细步骤

远程开发AI模型:SSH连接PyTorch-CUDA-v2.6镜像实战指南 在深度学习项目日益复杂的今天,一个常见的场景是:你手头有一台轻薄本,却要训练一个上亿参数的视觉模型。本地跑不动,环境又难配——驱动、CUDA版本、cuDNN兼容性…

作者头像 李华
网站建设 2026/1/12 7:14:43

vivado2023.2安装常见问题解析:系统学习手册

Vivado 2023.2 安装避坑指南:从下载到激活的实战全解析 你是不是也曾在准备开启 FPGA 开发之旅时,满怀期待地打开 Xilinx 官网,点下“下载 Vivado 2023.2”按钮,结果却在安装过程中被各种报错拦住去路?界面卡死、系统…

作者头像 李华
网站建设 2026/1/21 0:49:14

【CMake】概述

CMake 是一个跨平台的自动化构建系统,用于管理软件构建过程。它使用独立于编译器的配置文件(CMakeLists.txt)来定义构建规则,然后生成对应平台的本地构建文件(如 Makefile、Visual Studio 项目等)。 核心特…

作者头像 李华