在Python中,类(Class)和对象(Object)是面向对象编程的核心概念。想象一下,如果你想制作一批一模一样的玩具车,“玩具车”的设计图纸就是“类”,而你按照图纸做出来的每一辆具体的玩具车,就是一个“对象”。类定义了对象的“模板”,包含对象的属性(特征)和方法(行为);对象则是根据模板创建的具体“实例”,每个对象都有自己独立的属性值,并且可以执行类中定义的方法。
一、定义类:创建“模板”¶
要定义一个类,我们使用 class 关键字,后面跟着类名(通常首字母大写,遵循Python命名规范),然后是类体(缩进的代码块)。类体中可以包含属性(描述对象特征的变量)和方法(对象的行为,本质是函数)。
关键点:¶
- 类名:通常使用首字母大写的驼峰式命名,如
Person、Car。 - 构造方法
__init__:这是一个特殊方法,当创建对象时会自动调用,用于初始化对象的属性。方法的第一个参数必须是self,代表当前实例(即对象本身),后续参数用于设置属性值。 - 属性:通过
self.属性名赋值,例如self.name = name,这样每个对象都有独立的属性值。
示例:定义一个简单的 Person 类¶
class Person:
# 构造方法:创建实例时自动调用,初始化属性
def __init__(self, name, age):
# self.name = name:将参数name赋值给实例的name属性
self.name = name
self.age = age # 同理,self.age = age
# 实例方法:对象的行为(第一个参数必须是self)
def greet(self):
print(f"你好!我叫{self.name},今年{self.age}岁。")
二、创建实例:生成“具体对象”¶
定义好类之后,就可以通过“类名()”创建对象(实例),并传入构造方法需要的参数(除self` 外)。
关键点:¶
- 创建对象时,Python会自动调用
__init__方法,并将self指向当前实例。 - 每个对象都是独立的,拥有自己的属性值,互不影响。
示例:创建 Person 类的实例¶
# 创建第一个对象:小明,年龄18岁
person1 = Person("小明", 18)
# 创建第二个对象:小红,年龄20岁
person2 = Person("小红", 20)
三、使用对象:访问属性和调用方法¶
创建对象后,可以通过 对象名.属性名 访问属性,或通过 对象名.方法名() 调用方法(无需手动传 self,Python会自动传入)。
示例:使用 Person 类的实例¶
# 访问属性
print(person1.name) # 输出:小明
print(person2.age) # 输出:20
# 调用方法
person1.greet() # 输出:你好!我叫小明,今年18岁。
person2.greet() # 输出:你好!我叫小红,今年20岁。
四、类与对象的核心总结¶
- 类是模板:定义属性和方法的“蓝图”,多个对象可以基于同一个类创建。
- 对象是实例:每个对象有独立的属性值,例如
person1和person2的name和age可以不同。 - 方法必须带
self:实例方法的第一个参数self是Python自动传入的当前对象,调用时无需手动传参。 - 属性与方法分离:属性是描述对象的变量(如
name、age),方法是对象的行为(如greet)。
通过类和对象,我们可以将数据(属性)和操作(方法)封装在一起,让代码更模块化、易维护。初学者只需记住:先定义类(模板),再创建对象(实例),最后用对象访问属性和方法,就能逐步掌握Python面向对象编程的基础了。