Keep your place in this quest

Log in or sign up for free to subscribe, follow lesson progress, and access more learning content.

🐍 Python OOP 速查表

快速参考,涵盖你在 Python Basics: Object-Oriented Programming 任务中学到的所有内容。


1. 类和对象

定义类

class Person:
    def __init__(self, name, age):
        self.name = name      # 公共属性
        self.age = age        # 公共属性

    def greet(self):
        print(f"Hello, my name is {self.name} and I am {self.age} years old.")

创建对象

p1 = Person("John", 30)
p1.greet()   # Hello, my name is John and I am 30 years old.

2. 属性和方法

  • 属性 = 属于对象的变量 (self.attribute)
  • 方法 = 属于对象的函数 (def method(self):)

访问:

print(p1.name)   # 属性
p1.greet()       # 方法

3. 继承

基本继承

class Animal:
    def __init__(self, name):
        self.name = name

    def sound(self):
        print("Some generic sound")

class Dog(Animal):
    def sound(self):
        print("Woof woof!")

dog = Dog("Rex")
dog.sound()  # Woof woof!

4. super()

调用父类构造函数

class Dog(Animal):
    def __init__(self, name, breed):
        super().__init__(name)   # 调用 Animal 的 __init__
        self.breed = breed

5. 方法覆盖

子类可以替换父类的方法:

class Cat(Animal):
    def sound(self):
        print("Meow!")

6. 私有属性与方法

__ 标记为私有

class Person:
    def __init__(self, name, age):
        self.name = name
        self.__age = age  # 私有属性

    def __print_age(self):  # 私有方法
        print(self.__age)

    def show_info(self):
        print(self.name)
        self.__print_age()

直接访问私有成员会失败:

p = Person("Alice", 25)
p.__age         # ❌ AttributeError
p._Person__age  # ✅ 可用,但不推荐

7. 关键 OOP 术语

术语 含义
Class 对象的蓝图。
Object 类的实例,拥有自己的数据。
Attribute 对象内部的变量。
Method 类内部的函数。
Constructor 创建对象时调用的特殊方法 __init__
Inheritance 复用其他类代码的机制。
Overriding 重新定义父类的方法。
super() 调用父类方法。
Private __ 开头,表示仅供内部使用。

8. 快速最佳实践

  • 类名使用 PascalCaseMyClass
  • self 引用当前对象
  • 保持方法专注于单一任务
  • 内部细节用私有成员
  • 子类覆盖 __init__ 时调用 super().__init__()
  • 明智选择组合或继承 —— 不要为了继承而继承

📌 记住: OOP 是围绕名词(事物)及其行为来思考的。 建模现实世界概念,保持代码有序,尽可能复用