位置: 编程技术 - 正文

浅谈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)

  • 进口货物退货如何退税
  • 未分配利润为负数可以提取盈余公积吗
  • 支出算什么会计科目
  • 会计忘记申报税款会有什么影响
  • 小规模印花税计税金额是什么
  • 子公司固定资产移到母公司
  • 营改增建筑安装服务发票要求
  • 弥补以前年度亏损从哪里取数
  • 融资租赁是怎么操作的
  • 高原补贴算工资吗
  • 现金支付可以报销吗
  • 建筑企业如何进行资质申请?
  • 专票红冲如何做账
  • 进项票小于销项票怎么办
  • 稿酬所得的个税计算
  • 购入商品怎么做会计分录
  • 无法支付的其他应付款可以用现金核销吗
  • 网上代开专票 附加税在哪看
  • 进厂的政府补贴怎么拿
  • 分摊商品进销差额怎么算
  • macos monterey值得安装吗
  • 结转本期损益要过账吗
  • 使用Huagepage和PGO来提升PHP7的执行性能
  • 当月发生的费用下月支付
  • vpengine.exe进程
  • 向境外股东分配利润代扣代缴企业所得税
  • 小规模纳税人进口增值税怎么处理
  • 财务报表怎么判断盈亏
  • 农产品销售发票抵扣政策
  • css图片适应div
  • php中meta
  • vue实战技巧
  • 车辆保险费用的申请模板
  • 小规模纳税人减免增值税会计处理
  • 深度学习知识点简单概述【更新中】
  • 旅行社的增值税怎么算
  • 多交的城建税可以抵减扣除吗
  • 残疾人个税减免标准
  • 外购商品转为自用固定资产,进项税
  • dedecms使用教程
  • 专票作废扣税吗
  • 土石方收据图片
  • 包工包料意思
  • 美元利息结汇是属于外汇
  • 印花税申报怎么更正采集处理
  • 融资租赁租金计算工具使用的主要过程
  • 收到分红的会计科目
  • 印花税计入相关资产成本吗
  • 应付账款的逾期利息计入什么科目
  • 劳务所得税税率表2023年1月
  • 货物发生退运了怎么办
  • 结存成本会计分录
  • sql获取guid
  • mac的废纸篓
  • 苹果mac怎么下载英雄联盟
  • centos root被锁定如何取消
  • mac所有窗口最小化
  • 一台OpenSuSE系统的服务器的网络配置
  • win8系统出现蓝屏怎样处理
  • diy组装电脑前置怎么样
  • win7打开tftp服务器
  • 今日推送是什么
  • win7系统所有软件打不开
  • 利用命令查看虚拟机的信息
  • mysql如何添加外键
  • unix怎么操作
  • javascript date format
  • android常见面试题及答案
  • unity3d 游戏开发 消息通信
  • [置顶]津鱼.我爱你
  • 如何用jquery
  • nodejs连接mongodb副本集
  • linux查看内存型号与数量
  • 优化ui界面是啥意思
  • androiddialog圆角
  • shell脚本引用文件
  • ubuntu如何下载
  • python系统框架
  • python中对象的概念
  • 保险公司优惠的款项什么时候退款
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设