Python类如何定义私有变量


Posted in Python onFebruary 03, 2020

这篇文章主要介绍了Python类如何定义私有变量,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

前言

在java 的类中,如果你要定义一个私有变量,可以用修饰词 private,那么在Python 的类中呢,Python中没public private之类的修饰词,那Python 是如何定义私有变量的呢?

私有变量

在Python 类中定义私有变量,只要在变量前加 __ (两个下划线) ,那么该类的实例就不能引用了,看下面实例

>>> class demo(object):
...   __a =1
...   b = 2
...
>>> d = demo()
>>> print(d.b)
>>> d.__a
Traceback (most recent call last):
 File "<stdin>", line 1, in <module>
AttributeError: 'demo' object has no attribute '__a'

从上面的示例中可以看到,类demo的实例d可以不能调用变量__a,那实例d 有没有办法调用到__a呢,看下面的调用语法:

>>> d._demo__a
1

实例名+'_'+类名+私有变量 ,就能调用。大家记住这样的语法。

私有方法

私有方法同私有变量的语法也是一样的,我们直接看示例:

>>> class fun(object):
...   def __a(self):
...       print('聚焦学院AAA')
...   def b(self):
...       print('聚焦学院BBB')
...
>>> f = fun()
>>> f.b()
聚焦学院BBB
>>> f.__a()
Traceback (most recent call last):
 File "<stdin>", line 1, in <module>
AttributeError: 'fun' object has no attribute '__a'
>>> f._fun__a()
聚焦学院AAA

从上面的示例中可以看到,类的实例要调用私有方法也是和调用私有变量的语法一样。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python 类与元类的深度挖掘 I【经验】
May 06 Python
Python制作简易注册登录系统
Dec 15 Python
Python切片操作深入详解
Jul 27 Python
Python设计模式之策略模式实例详解
Jan 21 Python
Python使用ctypes调用C/C++的方法
Jan 29 Python
在 Linux/Mac 下为Python函数添加超时时间的方法
Feb 20 Python
python实现单张图像拼接与批量图片拼接
Mar 23 Python
Python常驻任务实现接收外界参数代码解析
Jul 21 Python
Python爬虫中Selenium实现文件上传
Dec 04 Python
java字符串格式化输出实例讲解
Jan 06 Python
Python中Numpy和Matplotlib的基本使用指南
Nov 02 Python
Pygame Rect区域位置的使用(图文)
Nov 17 Python
python异常处理try except过程解析
Feb 03 #Python
利用Python脚本实现自动刷网课
Feb 03 #Python
tensorflow 限制显存大小的实现
Feb 03 #Python
基于tensorflow指定GPU运行及GPU资源分配的几种方式小结
Feb 03 #Python
tensorflow指定GPU与动态分配GPU memory设置
Feb 03 #Python
TensorFlow内存管理bfc算法实例
Feb 03 #Python
python numpy数组中的复制知识解析
Feb 03 #Python
You might like
php设计模式 Interpreter(解释器模式)
2011/06/26 PHP
经典PHP加密解密函数Authcode()修复版代码
2015/04/05 PHP
PHP编程实现阳历转换为阴历的方法实例
2017/08/08 PHP
JavaScript中的几个关键概念的理解-原型链的构建
2011/05/12 Javascript
基于jquery DOM写的类似微博发布的效果
2012/10/20 Javascript
ExtJs设置GridPanel表格文本垂直居中示例
2013/07/15 Javascript
在firefox和Chrome下关闭浏览器窗口无效的解决方法
2014/01/16 Javascript
中止javascript执行的方法
2014/02/14 Javascript
jQuery计算文本框字数及限制文本框字数的方法
2016/03/01 Javascript
AngularJS基础 ng-copy 指令实例代码
2016/08/01 Javascript
javascript深拷贝的原理与实现方法分析
2017/04/10 Javascript
基于layer.js实现收货地址弹框选择然后返回相应的地址信息
2017/05/26 Javascript
Vue2.0父子组件传递函数的教程详解
2017/10/16 Javascript
手把手教你 CKEDITOR 4 扩展插件制作
2019/06/18 Javascript
vue 获取url参数、get参数返回数组的操作
2020/11/12 Javascript
[02:52]2014DOTA2西雅图国际邀请赛 CIS战队巡礼
2014/07/07 DOTA
[04:03]DOTA2英雄梦之声_第02期_风暴之灵
2014/06/30 DOTA
[01:07:47]Secret vs Optic Supermajor 胜者组 BO3 第一场 6.4
2018/06/05 DOTA
[25:59]Newbee vs TNC 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
[01:01:14]完美世界DOTA2联赛PWL S2 SZ vs Rebirth 第一场 11.21
2020/11/23 DOTA
Python subprocess模块详细解读
2018/01/29 Python
python数据封装json格式数据
2018/03/04 Python
python矩阵转换为一维数组的实例
2018/06/05 Python
python基础教程之while循环
2019/08/14 Python
python中Lambda表达式详解
2019/11/20 Python
pytorch 指定gpu训练与多gpu并行训练示例
2019/12/31 Python
Python 实现训练集、测试集随机划分
2020/01/08 Python
借助Paramiko通过Python实现linux远程登陆及sftp的操作
2020/03/16 Python
十岁生日父母答谢词
2014/01/18 职场文书
春节活动策划方案
2014/01/24 职场文书
快餐店的创业计划书范文
2014/01/29 职场文书
“学雷锋活动月”总结
2014/03/09 职场文书
商铺消防安全责任书
2014/07/29 职场文书
植物生产学专业求职信
2014/08/08 职场文书
PyTorch的Debug指南
2021/05/07 Python
Python中request的基本使用解决乱码问题
2022/04/12 Python