位置: 编程技术 - 正文

浅谈python对象数据的读写权限(python中对象的概念)

编辑:rootadmin

推荐整理分享浅谈python对象数据的读写权限(python中对象的概念),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:python中对象的概念,python对象的含义,python对象的方法,python 对象函数,python对象的属性和方法,python 对象函数,python对象类型有哪些,python中的对象,内容如对您有帮助,希望把文章链接给更多的朋友!

面向对象的编程语言在写大型程序的的时候,往往比面向过程的语言用起来更方便,安全。其中原因之一在于:类机制。

类,对众多的数据进行分类,封装,让一个数据对象成为一个完整的个体,贴近现实生活,高度抽象化。但是,python对类的封装并不好,因为所有的属性和方法都是公开的,你可以随意访问或者写入,你可以在类的外部对类的属性进行修改,甚至添加属性。这的确让人感到不安。

下面就来总结一下学习后的解决方案。

1,使用2个下划线前缀隐藏属性或者方法。

双下划线对类属性的影响:

1. 使属性只用于本类的内部,外部以及子类都不可直接读取修改。

2. 使用 _ _ 的类的属性,在实现时会被更改名称,如类中的__age 最后会变为_A__age (名称重整),这个好处是:通常用于涉及到继承的父类中使用。这样避免被子类属性覆盖。

2.创建可管理的属性。

有时候我们需要对属性的写入做额外的检查,对不合法的值拒绝写入,引发异常。

我们可以发现: self.__score是 属性值 的真正存储的地方,而self.score是函数(只不过它用起来像一个属性),它是获取和写入属性值的方法。

浅谈python对象数据的读写权限(python中对象的概念)

初始化的时候也会调用socre.setter 装饰的函数,因为__init__()函数下出现了self.score的调用

既然self.__score仅仅用来引用属性的值,可不可以用别的命名呢?如saveScore....当然是可以的,但是,它“暴露”了,我们不想让它在外部可用,还是应该

加 __ 将它隐藏,防止意外修改。

有时候,你确定某个类不会涉及到继承,那么,就可以将上述的双下划线改写为单下滑线,虽然不会达到隐藏的作用,但是:一方面,这样不会引发名称重整机制,

避免小题大做,另一面,用一个下划线开头,可以提醒使用者,这个属性不应该直接使用。那么,这就靠自觉了。

一个实例对象可以在外部随意添加属性。

这样,对象的属性就限定在类的内部了。

但是__slots__不能被继承。而且,__slots__的设计本意并不是上面的用法,而是创建大量(万计)对象时对内存占用进行优化。

总结:

写着写着,我发觉上面的技巧意义不大。类的设计是程序员本人,使用者也是本人,那么,对象属性的

读和写就应该自己把握,类设计时本身不需要太多的保护代码,否则会很臃肿,而且效率降低。保护措施应该发生在类的外部,让类对象接受到的数据永远是合法的,这样会更加轻巧灵活。这是我的感受。

以上这篇浅谈python对象数据的读写权限就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持积木网。

使用Python进行二进制文件读写的简单方法(推荐) 总的感觉,python本身并没有对二进制进行支持,不过提供了一个模块来弥补,就是struct模块。python没有二进制类型,但可以存储二进制类型的数据,就

Python 读写文件和file对象的方法(推荐) 1.open使用open打开文件后一定要记得调用文件对象的close()方法。比如可以用try/finally语句来确保最后能关闭文件。file_object=open('thefile.txt')try:all_the_text=file

详细介绍Python的鸭子类型 鸭子类型基本定义首先Python不支持多态,也不用支持多态,python是一种多态语言,崇尚鸭子类型。以下是维基百科中对鸭子类型得论述:在程序设计中

标签: python中对象的概念

本文链接地址:https://www.jiuchutong.com/biancheng/385431.html 转载请保留说明!

上一篇:python获取list下标及其值的简单方法(python获取list集合中某一元素的值)

下一篇:使用Python进行二进制文件读写的简单方法(推荐)(python2ide)

  • 财务会计和预算会计是两套账吗
  • 企业注销增值税留抵可以退吗
  • 合伙人没有账目就说赔了合法吗
  • 资产负债表损益表模板
  • 土地增值税预征率
  • 进口代收业务
  • 子公司的财报和母公司的财报并表吗
  • 投资性房地产租赁期开始日
  • 收取的职工房租如何入账
  • 销项税额抵减是怎么回事
  • 通讯费能开专票吗
  • 税收预测表模板
  • 营改增后印花税计税依据文件
  • 某运输企业以客运,货运划分
  • 已抵扣发票如何查询开票明细
  • 提供出口收汇核算方法
  • 发生工伤事故先怎么办
  • 金税三期得死多少企业
  • 红字发票如何填写摘要
  • 委托采购是什么意思
  • 出口转内销申报需要先做出口退税吗
  • 餐费没有发票怎么入账
  • 对某公司的了解
  • 承兑找零怎么做凭证
  • win10重启按什么键重置
  • 苹果6s自动清理
  • 地方水利建设基金
  • 预售卡怎么做会计分录
  • wwwxxx域名选择(www.xxx.com或者.cn)
  • 使用php进行mysql数据库编程的基本步骤
  • php数组求最大值
  • vscode配置r
  • php二维数组foreach
  • c语言中函数的实参和形参
  • 哪些税金不需要通过应交税费科目核算
  • 退税勾选错了怎么办
  • vuex 3
  • mongodb主键
  • 本年利润有余额是什么意思
  • 累计盈余下设明细科目吗
  • 土地开发成本包刮
  • mysql用户权限详解
  • 视同销售是怎么回事?
  • 小型微利企业企业所得税如何计算
  • 已执行新金融准则 本期金额
  • 银行共管账户怎么提款
  • 借款可以抵扣企业所得税
  • 复利和年金的区别通俗易懂的
  • 高新技术企业研发费用归集
  • 分包管理费取费标准
  • 房屋租赁产生的税费叫什么
  • 借长期借款贷在建工程
  • 以前年度的亏损
  • 什么计提折旧什么不计提折旧
  • sql2000 sql2008
  • mysql数据库完全备份
  • xp系统直接开机
  • ubuntu屏幕突然变大
  • 如何安装win95系统
  • win7诊断策略服务未运行是电脑问题还是网络
  • win10推送win11
  • windows全局搜索快捷键
  • win8.1中文版下载
  • ssh 使用代理
  • Win7系统安装教程
  • 文件系统的类型为raw
  • msoobe命令
  • Linux修改tomcat默认端口号8080
  • html通配符选择器怎么用
  • jquery 入门
  • unity3d脚本编程
  • js判断字符串字符出现的次数
  • jquery的认识和使用
  • 获取python的运行结果
  • jquery通过属性值获取元素
  • 完美实现碳排放自主抵消的工厂叫什么
  • jquery实例
  • 税务局与稽查局哪个好
  • 北京12366纳税服务平台
  • 河南省医保网上报销流程
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设