python类的公有和私有

2023-11-02

结论:python里并没有严格的私有变量和函数限制,仅仅是对程序员的限制,尽量不要去使用

(1)_xxx "单下划线 " 开始的成员变量叫做保护变量,意思是只有类实例和子类实例能访问到这些变量,需通过类提供的接口进行访问
(2)__xxx 类中的私有变量/方法名 " 双下划线 " 开始的是私有成员,意思是只有类对象自己能访问,连子类对象也不能访问到这个数据。
(3)__x__ 系统定义名字,前后均有一个“双下划线” 代表python里特殊方法专用的标识,如 __init__()代表类的构造函数。

class test:
	def __init__(self, a):
		self.__a = a
	def __get():
		return self.__a

python里的私有变量和私有方法都以双下划线开头

d.__a
Traceback (most recent call last):
  File "<pyshell#37>", line 1, in <module>
    d.__a
AttributeError: 'test' object has no attribute '__a'
d.__geta()
Traceback (most recent call last):
  File "<pyshell#38>", line 1, in <module>
    d.__geta()
AttributeError: 'test' object has no attribute '__geta'. Did you mean: '__ge__'?

如果想要直接访问私有变量和私有函数,解释器会报错说类里没有这个属性

但是python的私有其实是伪私有,其实是python的名字改装在起作用,在类外访问类里的私有元素,变量和方法会被改名,加上_<类名>即可访问私有变量和私有方法

d._test__a
1
d._test__geta()
1
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

python类的公有和私有 的相关文章

随机推荐

  • mysql5.7 免安装版配置

    文章目录 my ini 安装为服务 启动服务命令 移除服务命令 修改 root 账号的密码 初始化数据 my ini 复制 my default ini 或者新建 client port 3306 default character set
  • <mirrorOf>标签用于指定哪些仓库或仓库组需要使用该镜像源

    在Maven配置镜像源时 确实会使用到mirrorOf
  • 使用内核API函数找到I2C和串口控制器发送数据

    我们一般操作I2C或者串口都是编写应用程序调用内核硬件提供的设备节点操作这些硬件的 但是在某个项目中 需要在shutdown的时候往i2c和tty发送数据 发送数据给外置的mcu mcu几秒内就会给cpu断电 所以 这个动作无法在应用层中完
  • 靠谱的车 算法

    靠谱的车 程序员小明打了一辆出租车去上班 出于职业敏感 他注意到这辆出租车的计费表有点问题 总是偏大 出租车司机解释说他不喜欢数字4 所以改装了计费表 任何数字位置遇到数字4就直接跳过 其余功能都正常 比如 23再多一块钱就变为25 39再
  • Amazon S3 REST方式获取Object

    Amazon S3 用REST方式获取文件 具体参见API http docs aws amazon com AmazonS3 latest API RESTObjectGET html 利用C 构建下面的请求 GET ObjectName
  • MSCAN:Learning Deep Context-aware Features over Body and Latent Parts for Person ReID阅读笔记

    Learning Deep Context aware Features over Body and Latent Parts for Person Re identification 作者 DangWei Li等人 CVPR 2017 1
  • DOS常用命令(从入门到精通)

    DOS命令学习 一 DOS使用常识 DOS的概况 DOS Disk Operating System 是一个使用得十分广泛的磁盘操作系统 就连眼下流行的Windows9x ME系统都是以它为基础 常见的DOS有两种 IBM公司的PC DOS
  • 朴素贝叶斯理论推导与三种常见模型

    朴素贝叶斯 Naive Bayes 是一种简单的分类算法 它的经典应用案例为人所熟知 文本分类 如垃圾邮件过滤 很多教材都从这些案例出发 本文就不重复这些内容了 而把重点放在理论推导 其实很浅显 别被 理论 吓到 三种常用模型及其编码实现
  • C++ 和 OpenCV 实现卷积神经网络并加载 Keras 训练好的参数进行预测

    C 和 OpenCV 实现卷积神经网络并加载 Keras 训练好的参数进行预测 一 背景 二 Keras 定义神经网络结构 channels first 与 channels last channels first 与 channels l
  • Sourcetree 打开闪退怎么处理

    只需要把箭头指向的SourceTree exe Url 3vynpq3lkfkc3vf35ldq2wva2cs3o2zs文件删除 如果是多个一并删除 只留一个SourceTree文件夹即可
  • WebService 与 SOAP、WSDL、UDDI

    什么是WebService Web Services 是一种基于组件的软件平台 是面向服务的Internet 应用 Web Services 是应用于Internet 的 而不是限于局域网或试验环境 这要求提出的Web Services 框
  • 微服务2-nacos 配置中心

    1什么是配置中心 在微服务架构中 当系统从一个单体应用 被拆分成分布式系统上一个个服务节点后 配置文件也必须跟着迁移 分割 这样配置就分散了 不仅如此 分散中还包含着冗余 如下图 2为什么要使用配置中心 配置中心将配置从各应用中剥离出来 对
  • Unity 游戏框架搭建 2017 (五) 简易消息机制

    什么是消息机制 23333333 让我先笑一会 为什么用消息机制 三个字 解 耦 合 我的框架中的消息机制用例 1 接收者 Receiver cs using UnityEngine namespace QFramework Example
  • 如何运行ImageMagick的命令行工具

    在http www imagemagick org script index php网站下载相应的执行文件 这里以下载ImageMagick 6 6 5 10 Q16 windows static exe为例说明 将ImageMagick
  • spring集成kafka并对消息进行监听

    spring集成kafka 文章目录 spring集成kafka kafka本地安装启动 pom文件 生产配置 消费者配置 创建topic工具类 生产业务 消费业务 消息接收类 监听类 业务处理 异步 同步 ONEWAY 需要依赖zooke
  • layuiAdmin侧边栏菜单刷新保持当前页面

    layuiadmin框架 每次刷新整个页面 都会回到首页 现在想保持在当前页面 layuiAdmin侧边栏菜单刷新保持当前页面 利用缓存来处理 供自己参考如下 layui config base ROOT homeStatic layuia
  • [移动通讯]【Carrier Aggregation-4】【LTE-4】

    前言 推荐两个在线工具 UECapabilityInformation Decoder https www sqimway com ue capa php FGI Decoder http howltestuffworks blogspot
  • c#基础语法笔记----个人学习笔记

    改变应用图标 1 当 解决方案资源管理器 中有项目选中时 在 项目 菜单上单击 属性 2 选择 应用程序 窗格 3 从 图标 下拉列表中选择图标 ico 文件 实例化 new 类名 例如 user a new user 可写 set ret
  • Matplotlib学习

    Matplotlib学习 1 什么是Matplotlib 是专门用于开发2D图表 包括3D图表 以渐进 交互式方式实现数据可视化 2 为什么要用Matplotlib 可视化是在整个数据挖掘的关键辅助工具 可以清晰的理解数据 从而调整我们的分
  • python类的公有和私有

    结论 python里并没有严格的私有变量和函数限制 仅仅是对程序员的限制 尽量不要去使用 1 xxx 单下划线 开始的成员变量叫做保护变量 意思是只有类实例和子类实例能访问到这些变量 需通过类提供的接口进行访问 2 xxx 类中的私有变量