类的进阶知识点下篇
目录
🌌1、del的使用
因为代码二出现的原因,没有改变类中的language,而是在Python命名空间中创建了一个language = 'Chinese',所以之后python这个实例化的对象就再也拿不到类中的language静态属性了。
但是用del python.language可以解决
🌄五、动态属性修改知识点
上面的language = 'Chinese',中 'Chinese'是属于字符串是不可变的数据类型,如果换成language = [Chinese]这时列表是可变的数据类型,那么对动态属性修改与对静态属性的修改有什么区别呢?
代码一
代码二
结果示意图
🌌类中的继承
继承是一种创建新类的方式,在python中,新建的类可以继承一个或多个父类,父类又可称为基类或超类,新建的类称为派生类或子类
python中类的继承分为:单继承和多继承
抽象类 接口类
Python中没有接口类,有抽象类,abc模块中的metaclass = ABCMeta ,@abstructmethod
本质是做代码规范用的,希望在子类中实现父类方法名字完全一样的方法在Java角度上看,是有区别的
Java本来就支持单继承 所以就有了抽象类
Java没有多继承 所以为了接口隔离原则,设计了接口这个概念,支持多继承了Python既支持多继承也支持单继承,所以对接口类和抽象类的区别就不那么明显
在Python中没有内置接口类
多态和鸭子类型
多态 ———— Python天生支持多态
鸭子类型 ———— 不依赖父类的情况下实现两个类似类中的同名方法
封装 ———— 私有的
在Python中只要__名字,就把这个名字私有化了
私有化了之后 就不能从类的外部直接调用了
静态属性 方法 对象属性 都可以私有化
这种私有化只是从代码级别做了变形,并没有真的约束
变形机制_类名__名字 在类的外面用这个调用,在类的内部直接用__名字调用
🌌1、小结
对于可变数据类型来说,对象名的修改是共享language[0] = 'Chinese'的, 重新赋值(language = 'Chinese')是独立的
📚结语
📙:感谢各位能够看到这里💖💖💖:在鲁迅一篇未发表的文章中说过:“代码看懂了不是懂✨一定要自己实际操作哇✨这样才能更好的理解和吸收。”最后来一句:一个人可以在任何他怀有无限热忱的事情上成功,让我们一起进步吧✨
- 点赞
- 收藏
- 关注作者
评论(0)