苦练Python第42天:Python类(Class)初探,面向对象编程入门

前言

大家好,我是 倔强青铜三 。欢迎关注我,微信公众号:倔强青铜三。欢迎点赞、收藏、关注,一键三连!

欢迎来到 苦练Python第 42 天

今天我们将深入Python面向对象编程的核心------类(Class)。从基础定义到实例操作,一站式掌握类的核心用法!

🧩 类是什么?

类(Class) 是把数据(属性)和功能(方法)绑定在一起的蓝图。创建类即创建新的对象类型,通过类可以生成多个实例(Instance):

python 复制代码
class Dog:  # 类定义
    kind = 'canine'  # 类属性(所有实例共享)
    
    def __init__(self, name):  # 初始化方法
        self.name = name  # 实例属性(每个实例独有)
    
    def bark(self):  # 实例方法
        print(f"{self.name}: 汪汪!")

# 创建实例
d = Dog("旺财")
d.bark()  # 输出:旺财: 汪汪!

🔧 类定义与实例化

基础类定义

python 复制代码
class ClassName:
    """类文档字符串"""
    class_attr = value  # 类属性
    
    def __init__(self, arg):
        self.instance_attr = arg  # 实例属性
        
    def method(self):  # 方法
        return "功能实现"

__init__:特殊构造方法,实例化时自动调用

self:指向实例自身的引用(约定命名)

实例化对象

python 复制代码
class MyClass:
    count = 0  # 类属性
    
    def __init__(self, value):
        self.value = value  # 实例属性

# 创建实例
obj = MyClass(10) 
print(obj.value)  # 10

🧪 实例操作与调用

实例属性操作

python 复制代码
obj = MyClass(10)
obj.value = 20  # 修改属性
obj.new_attr = 5  # 动态添加属性(Python特色!)

方法调用机制

python 复制代码
class Calculator:
    def add(self, a, b):
        return a + b

calc = Calculator()
result = calc.add(3, 5)  
# 实际调用:Calculator.add(calc, 3, 5)
print(result)  # 8

方法可赋值给变量延迟调用:

python 复制代码
func = calc.add
print(func(2, 3))  # 5

⚠️ 关键特性与陷阱

类变量 vs 实例变量

python 复制代码
class Dog:
    tricks = []  # ❌ 错误!所有实例共享
    
    def __init__(self, name):
        self.name = name
        self.tricks = []  # ✅ 正确!独立列表

d1 = Dog("A")
d1.tricks.append("翻滚")
d2 = Dog("B")
print(d2.tricks)  # [] (独立列表)

属性查找优先级

python 复制代码
class Warehouse:
    region = "west"  # 类属性

w = Warehouse()
w.region = "east"  # 实例属性
print(w.region)  # "east"(实例>类)

动态特性

python 复制代码
# 动态添加类属性
MyClass.new_attr = 100  

# 动态添加方法
def external_func(self):
    return "外部函数"
MyClass.ext_method = external_func

🧾 类操作速查表

​操作类型​ ​示例代码​
基础类定义 class MyClass: ...
构造方法 def __init__(self, arg): ...
实例化对象 obj = MyClass()
调用实例方法 obj.method()
类属性访问 MyClass.attr
实例属性访问 obj.attr
动态添加属性 obj.new_attr = value

💡 核心总结一句话

类是数据和行为的绑定器,self是实例的身份证,实例属性 > 类属性,动态修改是Python的超级能力!
最后感谢阅读!欢迎关注我,微信公众号倔强青铜三。欢迎 点赞收藏关注,一键三连!

相关推荐
l1t22 分钟前
利用DeepSeek实现服务器客户端模式的DuckDB原型
服务器·c语言·数据库·人工智能·postgresql·协议·duckdb
在未来等你1 小时前
Elasticsearch面试精讲 Day 17:查询性能调优实践
大数据·分布式·elasticsearch·搜索引擎·面试
寒月霜华1 小时前
机器学习-数据标注
人工智能·机器学习
九章云极AladdinEdu2 小时前
超参数自动化调优指南:Optuna vs. Ray Tune 对比评测
运维·人工智能·深度学习·ai·自动化·gpu算力
人工智能训练师3 小时前
Ubuntu22.04如何安装新版本的Node.js和npm
linux·运维·前端·人工智能·ubuntu·npm·node.js
酷飞飞4 小时前
Python网络与多任务编程:TCP/UDP实战指南
网络·python·tcp/ip
cxr8285 小时前
SPARC方法论在Claude Code基于规则驱动开发中的应用
人工智能·驱动开发·claude·智能体
研梦非凡5 小时前
ICCV 2025|从粗到细:用于高效3D高斯溅射的可学习离散小波变换
人工智能·深度学习·学习·3d
数字化顾问5 小时前
Python:OpenCV 教程——从传统视觉到深度学习:YOLOv8 与 OpenCV DNN 模块协同实现工业缺陷检测
python
幂简集成5 小时前
Realtime API 语音代理端到端接入全流程教程(含 Demo,延迟 280ms)
人工智能·个人开发