点击蓝字
关注我们
【Python小白速通】实例化对象?说白了就是"用模板造具体的东西"!
咱上回唠了"定义类"——像奶茶店造了"奶茶通用模板",规定了所有奶茶该有价格、甜度,能加加料、改甜度。但光有模板没用啊,总不能卖"模板"给顾客吧?得用模板做出一杯杯具体的奶茶,这就是实例化对象!
简单说,实例化对象就是"把类这个'模板'变成具体的东西",像用乐高图纸(类)拼出一个个乐高小人(对象),用蛋糕模具(类)烤出一块块蛋糕(对象),主打一个"从抽象到具体,从模板到实物"~
一、先唠透:啥是实例化对象?(纯人话版)
先掰碎了说,不整专业术语:
- 类(Class):通用模板,比如"奶茶类",只规定规则,不是具体的奶茶;
- 对象(Object):用模板造出来的具体东西,比如"一杯珍珠奶茶""一杯芋泥奶茶",也叫"类的实例";
- 实例化:把类变成对象的过程,比如用"奶茶类"造一杯珍珠奶茶,这个动作就是实例化。
举个栗子:你去奶茶店,墙上贴的"奶茶配方模板"是「类」,店员按这个模板给你做的"这一杯珍珠奶茶"就是「实例化后的对象」——模板能造无数杯奶茶,每一杯都是一个独立的对象,甜度、加料都能不一样~
二、实操!3步搞定实例化对象,小白也能秒会
实例化的核心:`对象名 = 类名(参数)`,咱还是用"奶茶类"举例,代码都标了"人话注释",复制就能跑~
第一步:先备好"模板"(定义类)
实例化的前提是有类,先把"奶茶模板"搭好,新手先记这个基础框架!
python
#定义"奶茶类"(模板):规定奶茶的属性和技能
class MilkTea:
# 初始化方法:造奶茶时自动给属性赋值
def __init__(self, taste, price=18, sugar=5):
self.taste = taste # 口味(珍珠/芋泥)
self.price = price # 价格
self.sugar = sugar # 甜度
# 奶茶的技能:改无糖
def change_to_no_sugar(self):
self.sugar = 0
print(f"✅ {self.taste}奶茶已改成无糖!")
# 奶茶的技能:加加料(加3元)
def add_topping(self, topping):
self.price += 3
print(f"✅ {self.taste}奶茶加了{topping},价格{self.price}元!")
第二步:核心操作——实例化对象(用模板造奶茶)
这是最关键的一步!就像店员按模板做第一杯具体的奶茶,一行代码搞定~
python
#实例化第1个对象:一杯珍珠奶茶(用默认价格18元、5分糖)
pearl_tea = MilkTea("珍珠")
#打印对象的属性:看看这杯奶茶的具体信息
print(f"🍵 你的第一杯奶茶:{pearl_tea.taste}味,{pearl_tea.price}元,{pearl_tea.sugar}分糖")
#实例化第2个对象:一杯芋泥奶茶(自定义价格20元、3分糖)
taro_tea = MilkTea("芋泥", price=20, sugar=3)
print(f"🍵 你的第二杯奶茶:{taro_tea.taste}味,{taro_tea.price}元,{taro_tea.sugar}分糖")
👉 运行结果:
🍵 你的第一杯奶茶:珍珠味,18元,5分糖
🍵 你的第二杯奶茶:芋泥味,20元,3分糖
第三步:操作实例化后的对象(给奶茶改配置)
造出来的对象是"活的",能调用类里的技能,比如给珍珠奶茶改无糖、加芋圆~
python
#给珍珠奶茶(对象)改无糖
pearl_tea.change_to_no_sugar()
pearl_tea.add_topping("芋圆")
taro_tea.add_topping("椰果")
print(f"🍵 珍珠奶茶最终状态:{pearl_tea.price}元,{pearl_tea.sugar}分糖")
print(f"🍵 芋泥奶茶最终状态:{taro_tea.price}元,{taro_tea.sugar}分糖")
👉 运行结果:
✅ 珍珠奶茶已改成无糖!
✅ 珍珠奶茶加了芋圆,价格21元!
✅ 芋泥奶茶加了椰果,价格23元!
🍵 珍珠奶茶最终状态:21元,0分糖
🍵 芋泥奶茶最终状态:23元,3分糖
三、趣味拓展:实例化的"隐藏特性"
特性1:每个对象都是独立的"个体"
就像两杯奶茶,改其中一杯的甜度,另一杯完全不受影响——对象之间互不干扰!
python
#只改珍珠奶茶的价格,芋泥奶茶价格不变
pearl_tea.price = 25
print(f"🍵 珍珠奶茶价格:{pearl_tea.price}元")
print(f"🍵 芋泥奶茶价格:{taro_tea.price}元")
👉 运行结果:
🍵 珍珠奶茶价格:25元
🍵 芋泥奶茶价格:23元
特性2:一个类能实例化无数个对象
只要你想,能造10杯、100杯奶茶,每一杯都是独立的实例~
python
#实例化第3、4杯奶茶
grape_tea = MilkTea("葡萄", price=22, sugar=2)
mango_tea = MilkTea("芒果", price=24, sugar=4)
print(f"🍵 第三杯:{grape_tea.taste}奶茶,{grape_tea.price}元")
print(f"🍵 第四杯:{mango_tea.taste}奶茶,{mango_tea.price}元")
👉 运行结果:
🍵 第三杯:葡萄奶茶,22元
🍵 第四杯:芒果奶茶,24元
四、避坑小彩蛋:新手最容易踩的3个坑
1. 别漏参数:实例化时要传类的`__init__`方法要求的必传参数!比如`MilkTea()`没传`taste`,Python会懵:"啥口味的奶茶?没说我咋做?" 就像点奶茶只说"来一杯",老板肯定问"啥味的?"~
2. 别搞混"类"和"对象":类是模板,不能直接调方法!比如`MilkTea.change_to_no_sugar()`会报错,得先实例化成`pearl_tea`,再调`pearl_tea.change_to_no_sugar()`——总不能让"奶茶配方"自己改甜度吧?得是具体的奶茶才能改~
3. self不用传:实例化时不用给`self`传值!`__init__`里的`self`是Python自动帮你填的,你只需要传`taste、price`这些参数,比如`MilkTea("珍珠")`就行,别写成`MilkTea(self, "珍珠")`,纯属画蛇添足~
五、类vs实例化对象(大白话对比)
| 特点 | 类(模板)| 实例化对象(具体实物)|
|------|----------|----------------------|
| 存在形式 | 抽象的规则/配方 | 具体的、能操作的实物 |
| 能否调方法 | 不能(只是模板)| 能(比如改甜度、加加料) |
| 数量 | 一个类只有一个 | 能实例化出无数个对象 |
| 举例 | 奶茶配方模板 | 一杯珍珠奶茶、一杯芋泥奶茶 |
总结
1. Python实例化对象核心是`对象名 = 类名(参数)`,把"类模板"变成具体可操作的对象;
2. 实例化后的对象是独立个体,能调用类里的方法、修改自身属性,且对象之间互不影响;
3. 记住"先定义类再实例化、必传参数别漏、self不用传",能避开90%的实例化坑。

扫码关注我们
知识奇妙世界