Python 面向对象基础复习

设计模式大量依赖“面向对象思想”,如果没有夯实的 OOP(Object-Oriented Programming)基础,理解许多模式会比较吃力。本篇将快速复习 Python 中与设计模式关系最紧密的 OOP 特性,让你在后续章节学习中更顺畅。


一、Python 的类与对象(Class & Object)

Python 是一门“完全面向对象”的语言:

一切皆对象,包括函数、类、模块甚至整数。

创建类非常简单:

class Animal:
    def speak(self):
        return "Hello"

实例化:

dog = Animal()
print(dog.speak())

设计模式中常见的“对象创建”“对象组合”“对象交互”等概念都以此为基础。


二、封装(Encapsulation)

封装意在“隐藏内部实现,只暴露必要接口”。

Python 没有强制访问控制,但通过约定实现封装:

  • _name:建议视为内部属性,不要在外部直接访问
  • __name:触发名称改写(Name Mangling),进一步避免访问

示例:

class User:
    def __init__(self, name):
        self._name = name      # 约定内部使用
        self.__token = "xxx"   # 强保护属性

    def get_name(self):
        return self._name

封装使得对象在设计模式中可以保持稳定的对外接口,并在内部自由调整结构。


三、继承(Inheritance)

继承允许子类复用父类的属性与方法。
示例:

class Animal:
    def speak(self):
        return "..."

class Dog(Animal):
    def speak(self):
        return "Woof"

继承是很多模式的基础,如 模板方法、装饰器、工厂模式 等。

但注意:

Python 更强调组合优于继承。


四、多态(Polymorphism)

多态让不同对象可以通过同一个方法名实现不同行为。

class Cat:
    def speak(self):
        return "Meow"

class Dog:
    def speak(self):
        return "Woof"

def animal_speak(a):
    print(a.speak())

animal_speak(Cat())
animal_speak(Dog())






次阅读

扫描下方二维码,关注公众号:程序进阶之路,实时获取更多优质文章推送。


扫码关注

评论