本文共 1460 字,大约阅读时间需要 4 分钟。
Python 面向对象编程(object-oriented programming, OOP)是 Python 的核心概念之一。通过类(class)和对象(object)的概念,开发者可以更高效地组织代码结构,提升程序的可维护性和复用性。
在人类的认知过程中,我们会根据对象的属性将其归类。例如,鸟类的共同特征是拥有羽毛,并通过产卵等方式繁殖。面向对象编程模仿了这种分类思维,在 Python 中称之为“类”(class)。
class Bird(object): have_feather = True way_of_reproduction = 'egg' def move(self, dx, dy): position = [0, 0] position[0] += dx position[1] += dy return position
上述代码定义了一个 Bird 类。Bird 类包含两个属性:
have_feather:表示鸟类是否有羽毛。way_of_reproduction:表示鸟类的繁殖方式。此外,Bird 类还定义了一个方法 move,用于处理移动相关的逻辑。self 是一个关键参数,表示当前对象。
summer = Bird()print(summer.way_of_reproduction) # 输出 'egg'
通过 summer = Bird() 创建了一个 Bird 类的对象 summer。对象的属性可以通过 object.attribute 的形式访问。例如,summer.way_of_reproduction 会输出 'egg'。
print('after move', summer.move(5, 8)) # 输出 'after move [5, 8]' 方法的调用是通过 对象.方法名(参数) 的形式实现的。self 参数用于引用对象本身,方便方法内操作对象属性和状态。
类可以通过继承(inheritance)细分为子类。例如,可以将 Bird 类分为 Chicken、Pigeon 和 Oriole 三个子类。
class Chicken(Bird): way_of_move = 'walk' possible_in_KFC = Trueclass Oriole(Bird): way_of_move = 'fly' possible_in_KFC = False
summer = Chicken()print(summer.have_feather) # 输出 Trueprint(summer.move(5, 8)) # 输出 '[5, 8]'
子类对象(如 Chicken 或 Oriole)继承了父类 Bird 的所有属性和方法。例如,summer 是 Chicken 类的对象,自动拥有 have_feather 和 move 属性。
通过继承,开发者可以减少代码的重复性。例如,无需在每个子类定义中重新定义 Bird 类的属性,只需在子类中定义差异化的属性即可。
面向对象编程符合人类的思维习惯,更好地表达复杂的逻辑关系。相比之下,面向过程编程更适合处理一系列要执行的操作。
转载地址:http://xlofk.baihongyu.com/