Python学习-10(封装继承多态)

十三:

1.
类:

封装后:


注:能够访问,不过不建议访问,全靠自觉。

2.

例:


结构:
创建对象:
并且调用父类的info()方法;子类可以继承。

多重继承:

3.

注:子类想输出自己独有的东西,父类不能够提供这个需求了。就需要子类自己去重写;
例:


重写Person类里面的方法;

这个方法被student类重写过;

因为关于,name和age在父类的info()函数里面已经输出了,无需在输出了,只需要直接调用就可以了;


同理:关于teacher子类也可以输出教龄;

4.

用dir查看stu这个对象所具有的属性和方法;

这些其实都是从object父类里面继承过来的;

返回的是一个对象的描述:

在输出stu的时候,输出的是对象内存的地址:

重写方法,输出属性值即可:

不会再输出对象的内存的地址了。因为重写了str(),再次调用重写过的方法(函数),输出内容
直接输出stu的时候,默认调用str()这样的方法。
5.
例:


传给fun函数任意一个对象;
其实这三个是有继承关系的,并且重写了eat方法,所以会调用重写后的内容。

虽然Person和其他的没有继承关系,不过他有eat方法,所以依然可以调用eat方法。
区分静态语言和动态语言:

6.





类对象,就会看到属性和方法的字典:


特殊方法:

两个结果相同;

两个对象实现了加法;

上面这两个也是一样的;


特殊方法和内置函数是一样的。
所以,想要输出对象的长度就要编写len()方法。
例:

创建对象与初始化对象:



根据答案推理出:
new创建的对象–就是self,以及其对象p1.

他们之间是怎么执行的呢?


主要讲的是new和init,
new在前创建对象而init在后是对这个对象的属性,实例属性进行赋值,最后将创建的对象放在p1中。

7、
例:


内存示意图:

浅拷贝:

注:浅拷贝只是将Computer这个实例对象拷贝一份

深拷贝:

扫描二维码关注公众号,回复: 11931836 查看本文章

注:深拷贝除了将实例对象拷贝一份,也会将实例对象的子对象拷贝出来。


猜你喜欢

转载自blog.csdn.net/pfl_327/article/details/108864186
今日推荐