python的点号运算和LEGB规则的学

2023-01-31 02:01:09 python 规则 运算

1 封装

2 继承

3 多态

1 python的封装是约定 ,而不是约束, 因为你已经是成年人了.

2 Python的继承 实现本质是点号运算

3 python的多态是基于协议,基于行为的多态

1 简单的变量--遵循LEGB查找规则
2 点号运算 x.y 搜索对象中的属性y, 这个具有通用性, 可以用于任何对象.
假如我们有一个基类X ,然后Y继承与X, x是Y的实例,这里就形成了一个非常简单的继承树.也就是我们的搜索树.
X--->Y--->x
由于python中的类也是对象,所以我们的这颗树的成员本质都是一样的--对象.
这颗树上的每一个对象都有自己的命名空间.一般这个命名空间技术上用一个可维护的字典来实现. 在这个继承树上我们查找一个属性x.name.那么就会按照广度遍历的方法,搜索这颗树,找到name属性为止,没找到就抛出异常. 这就是python的继承.
1 在本地查找
2 嵌套作用域
3 全局作用域
4 内置作用域
这样一层层查找,找到就停止搜索,如果没找到,就未定义的错误.

相关文章