数据封装,继承和多态
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
属性:>>> bart.address = 'Town Road'
class Student(object):
name = 'Student'
实例的变量名如果以__
开头,就变成了一个私有变量(private)
Python并不禁止直接访问和赋值private变量,但请不要这么干!
“开闭”原则——
对扩展开放:允许新增Animal
子类;
对修改封闭:不需要修改依赖Animal
类型的run_twice()
等函数。
关于继承的鸭子类型见 0-静态语言