学习目标:
- 理解面向对象编程(OOP)的基本思想:类,对象
- 掌握类的定义,构造方法,实例属性和方法
- 熟悉self的含义与作用
- 学会用类组织和封装代码,初步构建自己的“对象世界”
一、什么是面向对象?
面向对象(Object-Oriented Programming)是一种将数据和操作数据的方法组织在一起的编程范式。
术语 | 含义 |
类(class) | 模板,蓝图,定义了对象的属性和行为 |
对象(object) | 类的具体实例,真实存在的“某一个” |
方法 | 类中定义的函数。作用于对象本身 |
属性 | 存储对象状态的变量(通常通过构造函数设定) |
二、定义类和创建对象
1.定义一个最简单的类
class Student:pass
用class类名:定义一个类,类名一般大写开头。pass表示“占位”
2.创建对象(实例)
stu1 = Student()
print(stu1) # 输出:<__main__.Student object at ...>
类名加括号即为“创建对象”,也叫实例化
三、构造函数(init)与实例属性
class Student:def __init__(self,name,age):self.name = name #实例属性self.age = age#创建对象
stu1 = Student("Alice",20)
print(stu1.name) # Alice
print(stu1.age) # 20
注释说明:
- __init__是构造方法,创建对象时自动调用;
- self代表当前实例本身;
- self.name是对象的属性,每个对象独立拥有;
- Student("Alice",20)会自动把"Alice"传给name,20传给age;
四、定义实例方法
class Student:def __init__(self,name,age):self.name = nameself.age = agedef introduce(self):print(f"我是{self.name},今年{self.age}岁")stu1 = Student("Bob",21)
stu1.introduce()
方法必须以self作为第一个参数,调用时不用写self
五、练习:自定义类管理多个对象
定义一个Book类
class Book:def __init__(self,title,author,price):self.title = titleself.author = author self.price = pricedef info(self):return f"《{self.title}》-{self.author},售价{self.price}元"# c创建多个对象
book1 = Book("三体","刘慈欣",49)
book2 = Book("活着",“余华”,39)#输出信息
print(book1.info())
print(book2.info())
输出:
《三体》 - 刘慈欣,售价 49 元
《活着》 - 余华,售价 39 元
六、OOP初学者易错点
错误用法 | 正确用法 | 原因 |
name =name | self.name = name | 未保存到对象属性中 |
忘写self参数 | def introduce(self) | Python方法必须有self参数 |
stu1.introduce(self) | stu1.introduce() | 调用时不需要传self |
多个对象共享数据混乱 | 每个对象独立数据 | 属性属于实例,不要用类变量混用 |