大家好,欢迎来到 100 天精通 Python 基础篇第 11 天!从今天开始,我们正式进入 面向对象编程(OOP) 的世界。这是 Python 从 “脚本小子” 走向 “软件工程师” 的关键一步,也是后续做项目、写框架的核心基础。
一、什么是面向对象?
面向过程:一步一步按顺序执行,适合简单脚本。
面向对象:把数据和操作数据的方法封装在一起,用 “对象” 来描述事物。
一句话理解:一切皆对象,对象 = 属性 + 方法
二、类与对象
1. 类(Class)
是模板、图纸,描述一类事物共有的特征和行为。
比如:人类、汽车、手机、学生。
2. 对象(Object)
是类的具体实例。比如:张三、你的手机、你开的车。
关系:类是模板,对象是根据模板造出来的具体实例。
三、定义一个类
语法:
class Person: # 初始化方法(构造方法) def __init__(self, name, age): # 属性:特征 self.name = name self.age = age # 方法:行为 def say_hello(self): print(f"大家好,我是{self.name},今年{self.age}岁")
四、创建对象(实例化)
# 创建对象p1 = Person("张三", 18)p2 = Person("李四", 20)# 调用属性print(p1.name)print(p1.age)# 调用方法p1.say_hello()p2.say_hello()
五、self 是什么?
六、构造方法 __init__
def __init__(self, name, age): self.name = name self.age = age
七、属性与方法分类
1. 对象属性
每个对象独有的:
class Person: species = "人类" # 类属性p1 = Person()print(Person.species)print(p1.species)
3. 对象方法
必须通过对象调用,第一个参数是 self:
@classmethoddef cls_method(cls): print("这是类方法")
5. 静态方法 @staticmethod
和对象、类无关,只是放在类里的普通函数:
@staticmethoddef static_method(): print("这是静态方法")
八、一个完整示例
class Student: # 类属性 school = "Python大学" # 构造方法 def __init__(self, name, score): self.name = name self.score = score # 对象方法 def show(self): print(f"姓名:{self.name},分数:{self.score}") # 类方法 @classmethod def show_school(cls): print(f"学校:{cls.school}") # 静态方法 @staticmethod def is_pass(score): return score >= 60# 创建对象s = Student("小明", 88)s.show()Student.show_school()print(Student.is_pass(88))
九、面向对象三大基本特征(今天先了解)
- 封装:把属性和方法打包,对外隐藏实现
- 继承:子类复用父类功能
- 多态:不同子类对同一方法有不同实现
十、今日小结
class 定义类,__init__ 初始化self 代表当前对象
今天是面向对象的第一天,先把类、对象、self、init 彻底搞懂。