天天看点

day18-总结

继承

子类直接拥有父类的属性和方法的过程就是继承

class 子类(父类):
      pass
           

注意:a.如果定义类的时候没有添加父类,默认继承python的基类object

​ b.同一个子类可以同时继承多个父类: class 子类(父类1, 父类2, 父类3,…)

Python中子类可以继承父类所有的属性和方法

重写

1)添加类属性: 直接在子类中定义新的类属性

2)添加方法:直接在子类中定义新的方法

​ 在子类中添加方法的时候可以对父类的方法进行重写

​ 在子类中可以通过

super().方法

的形式来调用父类中的方法。(注意:不能在静态方法中使用super()调用父类的方法)

总结:super的用法

可以通过super在子类中调用父类中的方法。

super().方法() - 直接调用当前类的父类的指定方法

super(类, 对象).方法() - 调用指定类的父类的指定方法(要求对象必须是前面的类的对象)

3)添加对象属性

在子类的__init__方法中通过super()去调用父类的__init__。

多继承

多继承的时候子类可以继承所有父类的类属性和方法,但是只能继承第一个父类的对象属性

私有化

方法:在属性名或者方法名前加__ 就可以让属性或者方法私有化

原理 :假的私有化,在 __ 开头的名字前加 ’ _ 类名’

拷贝:深拷贝和浅拷

深拷贝和浅拷贝的区别:

不管是浅拷贝还是深拷贝都是赋值被拷贝的对象产生一个新的对象,然后用新的对象来赋值。

如果被拷贝的对象中有子对象,浅拷贝不复制子对象用原来的,深拷贝会复制子对象产生新的子对象

内存管理:分为内存的开辟和释放
  1. 内存的开辟:使用数据得时候就申请保存数据

python中所有的类型都是类,所有的数据都是对象,对象都保存在堆里面。

在保存数据的时候相同的不可变数据内存中只保存一份,相同的可变数据在内存中一定会保存多份

  1. 内存的释放:垃圾回收机制

python中内存的某个数据是否销毁(对应的内存是否释放),看这个数据在程序中的引用个数,当引

用个数大于0的时候数据不会被销毁,当数据的引用个数为0的时候数据会被自动销毁。