基本概念
一个类(Class)能够创建一种新的类型(Type),其中对象(Object)就是类的实例(Instance),这种从属于对象或类的变量叫作字段(Field),对象还可以使用属于类的函数来实现某些功能,这种函数叫作类的方法(Method),字段与方法通称类的属性(Attribute)。
self
:类方法与普通函数只有一种特定的区别,前者必须多加一个 self
参数在参数列表开头。
示例:oop_method.py
1 | class Person: |
__init__
:此方法会在类的对象被实例化(Instantiated)时立即运行,对目标对象进行初始化操作。
示例:oop_init.py
1 | class Person: |
- 类变量(Class Variable):共享的,可以被属于该类的所有实例访问。
- 对象变量(Object variable):由类的每一个独立的对象或实例所拥有。
示例:oop_objvar.py
1 | # coding=UTF-8 |
继承
面向对象编程的一大优点是对代码的重用(Reuse),重用的一种实现方法就是通过继承(Inheritance)机制,继承最好是想象成在类之间实现类型与子类型(Type and Subtype)关系的工具。
- 多态性(Polymorphism):子类和父类存在相同的方法时,子类覆盖了父类的方法。
- 基类(Base Class)/ 超类(Superclass):
SchoolMember
类 - 派生类(Derived Classes)/ 子类(Subclass):
Teacher
和Student
类
1 | ┌───────────────┐ |
示例:oop_subclass.py
1 | # coding=UTF-8 |