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

严什么的烟 网站建设asp网站模板安装

严什么的烟 网站建设,asp网站模板安装,做网站做系统,58.搜房等网站怎么做效果才好引言 在前面介绍Python容器的时候#xff0c;我们曾经用过这种夸张的表述#xff0c;“Python就是包裹在一堆语法糖中的字典”。虽然夸张#xff0c;其实更多的是为了突出Python中dict的强大之处。今天这篇文章#xff0c;打算看下Python中类对象、实例对象的表示及内存管理…引言 在前面介绍Python容器的时候我们曾经用过这种夸张的表述“Python就是包裹在一堆语法糖中的字典”。虽然夸张其实更多的是为了突出Python中dict的强大之处。今天这篇文章打算看下Python中类对象、实例对象的表示及内存管理又会涉及到dict。 实例对象的__dict__属性 先说结论从内部实现的角度来看实例是使用字典dict来实现的。 前面介绍私有化属性时已经简单用到过__dict__这个属性可以通过实例的__dict__ 属性访问实例底层的字典。这个字典包含的数据对每个实例而言都是唯一的。可以在任何时候向实例添加新属性。也是通过__dict__。 对实例的修改始终会反映到局部__dict__ 属性中。同样如果直接对__dict__ 进行修改所做的修改也会反映在实例的属性中。 通过代码来验证这个结论 class DaGongRen:def __init__(self, name, age, salary):self.name nameself.age ageself.__salary salarydef get_salary(self):return self.__salaryif __name__ __main__:dgr DaGongRen(张三, 18, 100)# 从__dict__中可以看到实例所有的属性包括混淆名称后的私有属性print(dgr.__dict__)# 通过obj.attr的方式修改属性dgr.age 20# 再次查看__dict__age对应的value同步变更print(dgr.__dict__)# 通过__dict__直接修改value值dgr.__dict__[name] 李四# 实例的属性同步发生变更print(dgr.name)# 私有属性也一样dgr.__dict__[_DaGongRen__salary] 9999print(dgr.get_salary())执行结果 类对象的__dict__属性 其实类本身也只是对字典的浅层包装我们可以在实例的__dict__ 属性中找到这个字典。 直接看代码 from rich.pretty import pprintclass DaGongRen:这里是说明文档会存储在__doc__属性中cnt 0def __init__(self, name, age, salary):self.name nameself.age ageself.__salary salaryself.__class__.cnt 1def get_salary(self):return self.__salaryclassmethoddef test_class_method(cls):print(cls)staticmethoddef test_static_method():print(test)if __name__ __main__:# 查看类对象的__dict__pprint(DaGongRen.__dict__)dgr DaGongRen(张三, 18, 100)# 通过类对象的__dict__调用get_salary()方法由于是通过类对象调用第一个参数self需要手动传递print(DaGongRen.__dict__[get_salary](dgr))# 调用类方法DaGongRen.__dict__[test_class_method].__func__(DaGongRen)# 调用静态方法DaGongRen.__dict__[test_static_method].__func__()执行结果 从执行结果中可以看出类对象也是有__dict__属性的存储的是在类中定义的实例方法、类方法和静态方法以及类属性等。 总结 通过对比实例对象的__dict__和类对象的__dict__相关代码的示例可以得出如下结论 1、对象底层是对dict做了一层弱封装不管是实例对象还是类对象。 2、类中定义的类属性属于类存储在类对象的__dict__属性对应的字典中类的__init__初始化方法或者实例对象中动态添加的属性属于实例对象存储在实例对象的__dict__属性对应的字典中。 3、类中定义的方法不管是实例方法、类方法还是静态方法都属于类统一存储在类对象的__dict__属性对应的字典中。 4、实例方法其实就是普通的函数对象类方法和静态方法分别对函数对象做了一层对应的封装。 通过这篇文章我们应该能够对类、实例的存储有了更进一步的理解。 但是还有一个问题。既然Python中一切皆对象对象底层又是对dict的封装那么问题来了为什么有些内置类型的对象没有__dict__属性或者无法在__dict__属性中找到类中定义的实例属性 这个问题涉及到对象内存的管理与优化我们放到下一篇文章中来回答。 感谢您的拨冗阅读如果对您学习Python有所帮助欢迎点赞、收藏。
http://www.hkea.cn/news/14543727/

相关文章:

  • 分类信息网站如何做排名网站模板用什么软件做
  • 网站备案和服务器备案吗个人网站建设方案实施
  • 锡林郭勒盟工程建设造管理网站动漫制作专业正规吗
  • 网站收录服务做门户网站开发的技术
  • 网站建设好后打开是目录文件做企业网站的好处
  • 石家庄兼职做网站window wordpress
  • 长春网站开发培训大连工程信息招标网
  • 网站首页被降权软装设计网络课程
  • 网站建设业务平均工资企业网络安全管理制度和应急预案
  • 网站建设怎样做好怎么获取网站数据做统计
  • 网站开发教程wordpress鏁版嵁
  • 做ftp网站怎么设置有大佬给个网址吗
  • 我市精神文明建设的门户网站2018做网站前景好么
  • 网站seo月报华为开发者选项在哪里打开
  • 公司网站建设建议设计网站 站什么网
  • 公司设计网站需要注意哪些wordpress修改用户名
  • 网站建设毕业设计评价网站怎么黑
  • 落叶云互联免费主机网站优化公司价格如何计算
  • 重庆网站建设价位石家庄的电商网站建设
  • 百度商桥代码怎么添加到网站seo收费
  • 求网站建设的视频教程汕头建设银行协华支行
  • 免费做房产网站有哪些wordpress 云教育
  • 广州澄网站建设公司上海app开发推荐中伟科
  • app和手机网站的区别是什么嵌入式培训总结
  • 云砺信息科技做网站广州专业展台制作价格
  • 网站模板包含哪些内容安徽省建设厅网站域名
  • 网站首页外链开发区网站建设公司
  • 佛山市网站开发做外卖网站需要多少钱
  • 网站优化计划在百度上做网站推广怎么弄
  • 做机械毕业设计哪个网站好扬州建设企业网站