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

Python 类

  • 类的基本结构
  • 核心概念与示例
    • 定义类并创建实例
    • 实例方法、类方法、静态方法
    • 继承(代码复用)
    • 封装(隐藏内部细节)
  • 关键点总结

Python 类是面向对象编程( OOP)的核心,用于封装数据和操作数据的方法。下面通过实例逐步讲解类的基本使用:

类的基本结构

类由属性(数据)方法(函数)组成,基本格式:

class 类名:# 类属性(所有实例共享)类变量 =# None 不是 null# 构造方法(初始化实例)def __init__(self, 参数1, 参数2, ...):# 实例属性(每个实例独立)self.属性1 = 参数1self.属性2 = 参数2# 实例方法(必须包含self参数)def 方法名(self, 参数...):# 方法体(可通过self访问属性/其他方法)pass

核心概念与示例

定义类并创建实例

class Person:# 类属性(所有Person实例共享)species = "人类"# 构造方法:创建实例时自动调用def __init__(self, name, age):# 实例属性:每个实例独立拥有self.name = name  # 姓名self.age = age    # 年龄# 实例方法:打印个人信息def introduce(self):print(f"我叫{self.name},今年{self.age}岁,是{self.species}")# 创建实例(对象)
p1 = Person("张三", 20)
p2 = Person("李四", 30)# 访问属性
print(p1.name)  # 输出:张三
print(p2.age)   # 输出:30
print(Person.species)  # 输出:人类(访问类属性)# 调用方法
p1.introduce()  # 输出:我叫张三,今年20岁,是人类
p2.introduce()  # 输出:我叫李四,今年30岁,是人类

实例方法、类方法、静态方法

  • 实例方法:操作实例属性,第一个参数必须是 self
  • 类方法:操作类属性,用 @classmethod 装饰,第一个参数是 cls(代表类本身)
  • 静态方法:与类和实例无关,用 @staticmethod 装饰,无默认参数
class Calculator:# 类属性:记录计算次数count = 0def __init__(self, x, y):self.x = xself.y = y# 实例方法:计算两个数的和def add(self):return self.x + self.y# 类方法:更新计算次数@classmethoddef increment_count(cls):cls.count += 1# 静态方法:判断一个数是否为偶数(与类/实例无关)@staticmethoddef is_even(num):return num % 2 == 0# 使用示例
calc = Calculator(3, 5)
print(calc.add())  # 输出:8(实例方法)Calculator.increment_count()
print(Calculator.count)  # 输出:1(类方法)print(Calculator.is_even(4))  # 输出:True(静态方法)

继承(代码复用)

子类可以继承父类的属性和方法,并可添加新内容或重写父类方法。

# 父类:动物
class Animal:def __init__(self, name):self.name = namedef speak(self):print("动物发出声音")# 子类:狗(继承Animal)
class Dog(Animal):# 重写父类方法def speak(self):print(f"{self.name}汪汪叫")# 新增方法def run(self):print(f"{self.name}在跑")# 子类:猫(继承Animal)
class Cat(Animal):def speak(self):print(f"{self.name}喵喵叫")# 使用
dog = Dog("旺财")
dog.speak()  # 输出:旺财汪汪叫
dog.run()    # 输出:旺财在跑cat = Cat("咪咪")
cat.speak()  # 输出:咪咪喵喵叫

封装(隐藏内部细节)

通过命名约定(下划线)隐藏属性,只暴露必要的方法。

class BankAccount:def __init__(self, balance=0):self._balance = balance  # 单下划线:约定为"私有"属性(外部尽量不直接访问)# 提供方法操作属性(封装)def deposit(self, amount):if amount > 0:self._balance += amountprint(f"存入{amount}元,余额:{self._balance}")def withdraw(self, amount):if 0 < amount <= self._balance:self._balance -= amountprint(f"取出{amount}元,余额:{self._balance}")else:print("取款失败")# 使用
account = BankAccount(1000)
account.deposit(500)   # 存入500元,余额:1500
account.withdraw(300)  # 取出300元,余额:1200

关键点总结

self 代表实例本身,必须作为实例方法的第一个参数
类属性是所有实例共享的,实例属性是每个实例独有的
继承用于代码复用,子类可重写父类方法
封装通过方法操作属性,隐藏内部实现细节

http://www.dtcms.com/a/396070.html

相关文章:

  • 网站维护公司推荐合作营销
  • wordpress快站平台免费企业网站如何建设
  • 哪个网站可以做奖状住房与城乡建设部网站建造师
  • 电商网站前端架构设计全球最大的购物网站
  • 酒泉网站建设培训云虚机安装wordpress教程
  • 从事高端网站建设产品宣传
  • 网站制作多久能完成房地产型网站建设
  • 使用建造者模式创建对象
  • python判断与循环
  • 买了dede模板之后就可以做网站域名如何连接wordpress
  • 网站seo优化管理系统网站栏目设置
  • 网站制作公司转型数据wordpress修改主题注册
  • linux入门4.1(硬盘分区管理和RAID)
  • 网站加盟城市分站做别人公司的网站违法吗
  • 关闭未备案网站给你一个网站怎么优化
  • 源码下载网站cms公司做网页推广要多少钱
  • Windows 10系统停止维护对普通用户的影响以及应对策略
  • 【C++】二叉搜索树 和 AVL树——思想
  • 网站建设flash设计杭州行业网页设计公司
  • 【yolo】YOLO 训练的两个隐藏坑:类别顺序影响收敛 + cache 文件不刷新
  • 网站开发朋友圈做外围网站代理违法吗
  • 离散曲线数据存储与导出技术详解
  • 求职简历免费模板贵阳seo计费管理
  • 【LLM学习】【Ollama】三、RAG
  • 成华区网站建设北京seo网站优化公司
  • php网站建设论文答辩百度h5手机版
  • seo可以提升企业网站的东莞网站推广优化网站
  • 做西服的网站少儿编程课程收费标准
  • 滁州市工程建设网站上一篇 下一篇 wordpress
  • 网站后台管理系统界面手机做服务器建网站