苦练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的超级能力!
最后感谢阅读!欢迎关注我,微信公众号倔强青铜三。欢迎 点赞收藏关注,一键三连!

相关推荐
千匠网络1 小时前
破局出海壁垒,千匠网络新能源汽车跨境出海解决方案
人工智能
方安乐1 小时前
python之向量、向量和、向量点积
开发语言·python·numpy
zh1570233 小时前
JavaScript中WorkerThreads解决服务端计算瓶颈
jvm·数据库·python
马丁聊GEO3 小时前
解码AI用户心智,筑牢可信GEO根基——悠易科技深度参与《中国AI用户态度与行为研究报告(2026)》发布会
人工智能·科技
nap-joker3 小时前
Fusion - Mamba用于跨模态目标检测
人工智能·目标检测·计算机视觉·fusion-mamba·可见光-红外成像融合·远距离/伪目标问题
一只幸运猫.3 小时前
2026Java 后端面试完整版|八股简答 + AI 大模型集成技术(最新趋势)
人工智能·面试·职场和发展
Promise微笑3 小时前
2026年国产替代油介损测试仪:油介损全场景解决方案与技术演进
大数据·网络·人工智能
深海鱼在掘金3 小时前
深入浅出 LangChain —— 第三章:模型抽象层
人工智能·langchain·agent
生信碱移3 小时前
PACells:这个方法可以鉴定疾病/预后相关的重要细胞亚群,作者提供的代码流程可以学习起来了,甚至兼容转录组与 ATAC 两种数据类型!
人工智能·学习·算法·机器学习·数据挖掘·数据分析·r语言
workflower3 小时前
具身智能行业应用-生活服务业
大数据·人工智能·机器人·动态规划·生活