0-What is OOP?

数据封装,继承和多态

1-Class & Instance

实例属性

class Student(object):

    def __init__(self, name, score):
        self.name = name
        self.score = score
    ```
    def print_score(self):
        print('%s: %s' % (self.name, self.score))

__init__方法的第一个参数是self,表示创建的实例本身。

>>> bart.address = 'Town Road'

类属性

class Student(object):
    name = 'Student'

Private变量

实例的变量名如果以__开头,就变成了一个私有变量(private)

Python并不禁止直接访问和赋值private变量,但请不要这么干!

2-Inheritance & polymorphism

“开闭”原则—— 对扩展开放:允许新增Animal子类; 对修改封闭:不需要修改依赖Animal类型的run_twice()等函数。

关于继承的鸭子类型见 0-静态语言

3-get information of object