1.2.9. 面向对象编程 (OOP)¶
Python 支持面向对象编程 (OOP)。OOP 的目标是
组织代码,以及
在类似的上下文中重用代码。
以下是一个小例子:我们创建一个 Student 类,它是一个对象,包含多个自定义函数(方法)和变量(属性),我们可以使用
>>> class Student(object):
... def __init__(self, name):
... self.name = name
... def set_age(self, age):
... self.age = age
... def set_major(self, major):
... self.major = major
...
>>> anna = Student('anna')
>>> anna.set_age(21)
>>> anna.set_major('physics')
在上面的例子中,Student 类具有 __init__
、set_age
和 set_major
方法。它的属性是 name
、age
和 major
。我们可以使用以下符号调用这些方法和属性:classinstance.method
或 classinstance.attribute
。 __init__
构造函数是一个特殊方法,我们可以通过以下方式调用:MyClass(init parameters if any)
。
现在,假设我们想创建一个新的类 MasterStudent,它与之前的类具有相同的属性和方法,但额外添加了一个 internship
属性。我们不会复制之前的类,而是从它继承
>>> class MasterStudent(Student):
... internship = 'mandatory, from March to June'
...
>>> james = MasterStudent('james')
>>> james.internship
'mandatory, from March to June'
>>> james.set_age(23)
>>> james.age
23
MasterStudent 类继承了 Student 的属性和方法。
借助类和面向对象编程,我们可以用不同的类来组织代码,这些类对应于我们遇到的不同对象(例如 Experiment 类、Image 类、Flow 类等),它们拥有自己的方法和属性。然后,我们可以使用继承来考虑围绕基类的变体并重用代码。例如:从 Flow 基类,我们可以创建派生类 StokesFlow、TurbulentFlow、PotentialFlow 等。