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

Python打卡训练营day28-类的定义与方法

知识点回顾:

  1. 类的定义
  2. pass占位语句
  3. 类的初始化方法
  4. 类的普通方法
  5. 类的继承:属性的继承、方法的继承

类的定义,初始化,方法

即将“对象”和可以对“对象”进行的“操作”封装到一起

import math  class Circle:  # 定义一个类def __init__(self, radius=1): # 传入半径self.radius = radius      # self.radius 是实例属性(可修改属性名,需同步改方法中的用)def calculate_area(self):              # 定义面积方法return math.pi * self.radius ** 2  # math.pi 是固定常量,self.radius 是实例属性def calculate_circumference(self):     # 定义周长方法return 2 * math.pi * self.radius

cir1 = Circle(5)
print(cir1.calculate_area())
print(cir1.calculate_circumference())

78.53981633974483

31.41592653589793

方形类

class Rectangle:def __init__(self,length,width):self.length = lengthself.width = widthdef calculate_area(self):return 2*(self.length+self.width)def calculate_perimeter(self):return self.length * self.widthdef is_square(self):if self.length == self.width:return Trueelse:return False
rect1 = Rectangle(2,2)
print(rect1.calculate_area())
print(rect1.calculate_perimeter())
rect1.is_square()

8

4

True

工厂函数

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. Supported types: 'circle', 'rectangle'")

pass

用于类或方法暂时没有具体实现时,用 pass 避免语法错误:

class EmptyClass:  # 空类(占位)passdef todo_method():  # 待实现的方法pass

类的继承

class Rectangle:def __init__(self,length,width):self.length = lengthself.width = widthdef calculate_area(self):return 2*(self.length+self.width)def calculate_perimeter(self):return self.length * self.widthdef is_square(self):if self.length == self.width:return Trueelse:return Falseclass square:def __init__(self,width):super().__init__(width)        # 继承初始化方法def calculate_area(self):return self.width*self.width   # 重写面积函数

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

相关文章:

  • 2021-04-12 VSC++: 寻找N以内的亲密数对。(求因子和)
  • 【Node.js】Web开发框架
  • 牛客网NC15869:长方体边长和计算问题解析
  • Python中的常量和变量分别是怎么定义的?
  • 【QT】在界面A打开界面B时,界面A隐藏,界面B关闭时,界面A复现
  • chromedp -—— 基于 go 的自动化操作浏览器库
  • Redis 的 key 的过期策略是怎么实现的
  • Redis String 设计思想深度解析
  • 系统架构设计师案例分析题——数据库缓存篇
  • 解除diffusers库的prompt长度限制(SDXL版)
  • ArcGIS Pro 3.4 二次开发 - 核心主机
  • Linux yq 命令使用详解
  • 【Qt】QImage实战
  • 一文读懂迁移学习:从理论到实践
  • Git Clone 原理详解:为什么它比本地文件复制更快? -优雅草卓伊凡
  • word格式相关问题
  • C语言——函数递归与迭代
  • 微调后的模型保存与加载
  • Android13 wifi设置国家码详解
  • 结课作业01. 用户空间 MPU6050 体感鼠标驱动程序
  • SuperVINS:应对挑战性成像条件的实时视觉-惯性SLAM框架【全流程配置与测试!!!】【2025最新版!!!!】
  • flink 提交流程
  • 基于Flink的数据中台管理平台
  • CNN手写数字识别/全套源码+注释可直接运行
  • 基于moonshot模型的Dify大语言模型应用开发核心场景
  • 如何成为更好的自己?
  • AI智能分析网关V4玩手机检测算法精准管控人员手机行为,搭建智慧化安防监管体系
  • iOS 15.4.1 TrollStore(巨魔商店)安装教程详解:第二篇
  • Ubuntu学习记录
  • vscode打开vue + element项目