大家好,我是杨数Tos,这是《从零基础到大神》系列课程的第73篇文章,第三阶段的课程:Python进阶知识:类与对象(四);类与对象的名称空间,对象中属性查找的顺序。
一、类的名称空间
首先,类中存放的全部数据、方法是所有对象共有的,所有的对象都能使用;
其次,在Python中定义类的时候,Python解释器就会执行一遍类中代码;所以类的名称空间是类被定义的时候就产生的;
定义类的时候产生的名称空间包括:类体代码的内存地址,类名的内存地址,类名的内存地址会指向类体代码的内存地址;
二、对象的名称空间
对象的名称空间是在对象初次实例化(即创建对象的时候)就建立了;对象实例化的时候会产生:对象名的内存地址,对象体代码的内存地址,对象名会指向类体代码与对象本身的代码;
三、对象中属性查找的顺序
与其他编程语言不一样的地方在于,Python是支持继承并且是支持多继承的;
所以,在对象中查找属性的顺序是:
1、对象本身去查找,(若对象中没有,则2);
2、类中去查找 ,(若类中没有,则3);
3、去这个类的父类中去查找 ,(若父类中没有,则4);
4、去这个父类中的基类去查找,(若基类中也没有,则返回报错信息。
由于在Python中类是支持多继承的,所以引发多继承的“菱形问题”(即要先去哪一个父类中获取属性);这个我们会在接下来的文章中详细说明。
以上是本期内容,如果有表达不对的内容,欢迎您的留言、斧正,我们一起天天向上。
感谢您的阅读,您的三连【关注、点赞、收藏】就是对我最大的支持,谢谢!
本文由杨数Tos原创,欢迎关注,带你一起长知识。
,