Python基础:面向对象编程 (OOP)
面向对象编程(OOP)速查表(附加)
Lesson 7 of 7 • 10 XP
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. 快速最佳实践
- 类名使用 PascalCase :
MyClass - 用
self引用当前对象 - 保持方法专注于单一任务
- 内部细节用私有成员
- 子类覆盖
__init__时调用super().__init__() - 明智选择组合或继承 —— 不要为了继承而继承
📌 记住: OOP 是围绕名词(事物)及其行为来思考的。 建模现实世界概念,保持代码有序,尽可能复用。