零基础学习Python 之类(Class)和实例(Instance)_我的学习Python记录12

零基础学习Python 之类(Class)和实例(Instance)_我的学习Python记录12

目录

  1. 什么是类和实例?
  2. 类的作用
  3. 如何定义类?
  4. 如何创建实例?
  5. 类的属性和方法
  6. 实际案例
    • [案例 1:学生信息管理](#案例 1:学生信息管理)
    • [案例 2:简单的银行账户](#案例 2:简单的银行账户)
  7. 练习题
  8. 总结

什么是类和实例?

类(Class)

  • 是现实世界事物的抽象模板。例如,"汽车"可以作为一个类,它描述了汽车共有的特征(如颜色、品牌)和行为(如启动、加速)。
  • 类的本质:通过代码将数据(属性)和操作数据的方法(函数)封装在一起。

实例(Instance)

  • 实例 是根据类创建的具体对象。例如,根据"汽车"类可以创建一辆"红色奥迪"实例。
  • 实例的本质:类的具体化,拥有类定义的属性和方法。

类比理解

  • 就像 饼干模具,定义了饼干的形状和大小。
  • 实例 就像 用模具压出的饼干,每个饼干都是具体的、独立的存在。

类的作用

  1. 代码复用:通过类可以批量创建具有相同属性和方法的对象。
  2. 封装数据:将数据和操作数据的方法捆绑在一起,提高代码可读性和安全性。
  3. 模拟现实世界:用代码描述现实中的事物和关系,使程序更直观。

如何定义类?

基本语法

python 复制代码
class 类名:
    def __init__(self, 参数1, 参数2, ...):
        # 初始化属性
        self.属性1 = 参数1
        self.属性2 = 参数2

    def 方法名(self, 参数):
        # 方法的具体操作

关键点

  • class 是定义类的关键字。
  • __init__ 是类的构造方法,用于初始化实例的属性。
  • self 表示实例本身,通过它可以访问实例的属性和方法。

如何创建实例?

语法

python 复制代码
实例名 = 类名(参数1, 参数2, ...)

示例

python 复制代码
class Car:
    def __init__(self, color, brand):
        self.color = color
        self.brand = brand

# 创建实例
my_car = Car("红色", "奥迪")

类的属性和方法

属性

  • 属性 是类或实例的变量,用于存储数据。
  • 属性分为 类属性 (所有实例共享)和 实例属性(每个实例独立)。
示例
python 复制代码
class Dog:
    # 类属性(所有狗的品种共享)
    category = "犬科"

    def __init__(self, name, age):
        # 实例属性(每只狗独立)
        self.name = name
        self.age = age

# 创建实例
dog1 = Dog("旺财", 3)
print(dog1.name)       # 输出:旺财
print(dog1.category)   # 输出:犬科

方法

  • 方法 是类中定义的函数,用于操作属性或执行特定任务。
  • 方法的第一个参数必须是 self,表示实例本身。
示例
python 复制代码
class Dog:
    def __init__(self, name, age):
        self.name = name
        self.age = age

    def bark(self):
        print(f"{self.name} 在汪汪叫!")

# 创建实例并调用方法
dog1 = Dog("旺财", 3)
dog1.bark()  # 输出:旺财 在汪汪叫!

实际案例

案例 1:学生信息管理

python 复制代码
class Student:
    def __init__(self, name, age, score):
        self.name = name
        self.age = age
        self.score = score

    def study(self, hours):
        print(f"{self.name} 学习了 {hours} 小时。")
        self.score += hours * 0.5

    def show_info(self):
        print(f"姓名:{self.name},年龄:{self.age},分数:{self.score}")

# 创建实例并操作
student1 = Student("小明", 18, 80)
student1.study(4)       # 学习 4 小时
student1.show_info()    # 输出:姓名:小明,年龄:18,分数:82.0

案例 2:简单的银行账户

python 复制代码
class BankAccount:
    def __init__(self, owner, balance=0):
        self.owner = owner
        self.balance = balance

    def deposit(self, amount):
        """存款"""
        self.balance += amount
        print(f"存入 {amount} 元,当前余额:{self.balance}")

    def withdraw(self, amount):
        """取款"""
        if amount > self.balance:
            print("余额不足!")
        else:
            self.balance -= amount
            print(f"取出 {amount} 元,当前余额:{self.balance}")

# 创建实例并操作
account = BankAccount("张三", 1000)
account.deposit(500)    # 存入 500 元,当前余额:1500
account.withdraw(2000)  # 输出:余额不足!
account.withdraw(800)   # 取出 800 元,当前余额:700

练习题

练习 1:定义一个动物类

  • 要求
    1. 动物类有属性:名字(name)、年龄(age)。
    2. 动物类有方法:eat(),打印"XXX 在吃东西"。
    3. 创建两个实例(如"小猫 2 岁"和"小狗 3 岁"),调用 eat() 方法。

练习 2:改进银行账户类

  • 要求
    1. 添加一个 show_balance() 方法,显示当前余额。
    2. 添加一个 transfer() 方法,支持向另一个账户转账。

总结

  • 是抽象的模板,实例 是具体的对象。
  • 类的核心功能是封装数据(属性)和操作数据的方法(函数)。
  • 通过类可以高效管理代码,模拟现实世界的复杂系统。

学习心得

作为零基础学习者,掌握类和实例的概念是迈向 Python 进阶的重要一步。通过实际案例和练习,我逐渐理解了如何用类组织代码,并创建具有独立属性和行为的实例。以下几点是我的学习心得:

  1. 多写代码:通过反复练习,熟悉类的定义和实例化。
  2. 理解 self :明确 self 表示实例本身,是操作属性和方法的关键。
  3. 从生活出发:用现实中的例子(如汽车、学生)帮助理解抽象概念。

希望这篇博文对你有帮助!如果有任何问题,欢迎在评论区留言讨论。😊


Happy Coding! 🚀

相关推荐
im_AMBER17 分钟前
学习日志05 python
python·学习
大虫小呓22 分钟前
Python 处理 Excel 数据 pandas 和 openpyxl 哪家强?
python·pandas
哪 吒34 分钟前
2025B卷 - 华为OD机试七日集训第5期 - 按算法分类,由易到难,循序渐进,玩转OD(Python/JS/C/C++)
python·算法·华为od·华为od机试·2025b卷
-凌凌漆-37 分钟前
【Qt】QStringLiteral 介绍
开发语言·qt
程序员爱钓鱼37 分钟前
Go语言项目工程化 — 常见开发工具与 CI/CD 支持
开发语言·后端·golang·gin
军训猫猫头1 小时前
1.如何对多个控件进行高效的绑定 C#例子 WPF例子
开发语言·算法·c#·.net
真的想上岸啊1 小时前
学习C++、QT---18(C++ 记事本项目的stylesheet)
开发语言·c++·学习
明天好,会的2 小时前
跨平台ZeroMQ:在Rust中使用zmq库的完整指南
开发语言·后端·rust
摸爬滚打李上进2 小时前
重生学AI第十六集:线性层nn.Linear
人工智能·pytorch·python·神经网络·机器学习
丁劲犇2 小时前
用 Turbo Vision 2 为 Qt 6 控制台应用创建 TUI 字符 MainFrame
开发语言·c++·qt·tui·字符界面·curse