当前位置: 首页 > news >正文

Python类和对象三(十二)

私有变量:

在py中的私有变量,就是想要私有的那个变量,偷偷的改了个名字 

名字改编是发生在实例化对象的时候的事情

c._dic_是存放对象c这个属性的位置,还可以通过给字典添加键值对的方法用来给对象添加属性

字典跟集合高效的背后玄机,就是那空间来换时间,除了费内存,如果我们知道一个对象设计出来只是需要几个固定的属性,将来没有动态添加属性这种需求,那么利用字典来存放属性这种空间上的牺牲就是纯纯的浪费

py中专门设计了一个slots类属性,避免了利用字典来存放造成控件浪费

因为使用了slots属性,对象就会划分一个固定大小的空间来存放指定的属性,这个时候_dic_属性就不需要了,空间也就节约出来,但是牺牲了配py动态语言的特性了

e中可以动态添加属性,以为solts不会再子类中生效 

类的魔法方法:

构造方法: 

之所以可以对不可变对象进行修改,是我们赶在实例对象被创建之前进行了拦截,然后我们才去嗲用这个super._new()_去创建真正的实例对象,由于CapStr是继承于str字符串类的,字符串该有的方法也继承了

销毁方法:

对象被销毁的时候调用del方法 

对象如果还有引入,是不会调用销毁方法的 

还可以实现销毁对象时,实现对象的重生:

py的闭包,可以通过某种方式,将外层变量的给保存下来

定义闭包函数是为了让self保存在外部的函数的x变量中,内部函数的作用是为了窃取这个self对象,在del方法中调用它的时候是带参数的,就把这个参数存储起来,如果在外部调用这个函数不带参数就是用默认值None,那么他会返回刚刚拿到的self对象

运算相关的魔法方法:

 

 

 

 

s2是相同的对象,不会调用radd方法

 

http://www.xdnf.cn/news/156943.html

相关文章:

  • 多线程(1)——认识线程
  • 交换机之配置系统基本信息(Basic Information of the Configuration System for Switches)
  • 架构进阶:105页PPT学习数字化转型企业架构设计手册【附全文阅读】
  • 【Python】使用uv管理python虚拟环境
  • 【计算机网络】信息时代的数字神经系统
  • 新电脑工作环境初始化2025
  • Python基于Django的全国二手房可视化分析系统【附源码】
  • 搭建spark-local模式
  • html css js网页制作成品——HTML+CSS+js美甲店网页设计(5页)附源码
  • 毕业项目-基于深度学习的入侵检测系统
  • 北斗导航 | Transformer增强BiLSTM网络的GNSS伪距观测量误差探测
  • 冯·诺依曼和哈佛架构​​​​两种架构的总线组成及核心特点
  • LiveCharts.WPF图表模块封装
  • asammdf 库的信号处理和数据分析:深入挖掘测量数据
  • 自然语言处理——语言转换
  • Redis常见面试题——List对象
  • 26 Arcgis软件常用工具有哪些
  • JUC多线程:辅助类CountDownLatch、CyclicBarrier、Semaphore实战指南(附保姆级代码)
  • AIGC在自动化测试领域的创新应用:智能生成测试用例与缺陷预测
  • 云原生--核心组件-容器篇-2-认识下Docker(三大核心之镜像,容器,仓库)
  • 前端与Rust后端交互:跨越语言鸿沟 (入门系列三)
  • JS自动化获取网站信息开发说明
  • Dify框架面试内容整理-Dify如何实现模型调用与管理?
  • 使用Django框架表单
  • 软件设计案例分析学习笔记
  • 如何创建一个导入模板?全流程图文解析
  • LeetCode --- 446 周赛
  • Simple-BEV论文解析
  • 关于聚簇索引
  • 【软考-架构】13.5、中间件