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下函数参数的传递(参数带星号的说明)
Sep 19 Python
Python构造自定义方法来美化字典结构输出的示例
Jun 16 Python
利用python实现命令行有道词典的方法示例
Jan 31 Python
浅析python递归函数和河内塔问题
Apr 18 Python
Python实现随机生成有效手机号码及身份证功能示例
Jun 05 Python
对python的unittest架构公共参数token提取方法详解
Dec 17 Python
python utc datetime转换为时间戳的方法
Jan 15 Python
python中时间模块的基本使用教程
May 14 Python
Python动态参数/命名空间/函数嵌套/global和nonlocal
May 29 Python
python软件都是免费的吗
Jun 18 Python
keras的load_model实现加载含有参数的自定义模型
Jun 22 Python
详解python使用金山词霸的翻译功能(调试工具断点的使用)
Jan 07 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用SAX解析XML的实现代码与问题分析
2011/08/22 PHP
php中3种方法统计字符串中每种字符的个数并排序
2012/08/27 PHP
ThinkPHP3.1新特性之G方法的使用
2014/06/19 PHP
PHP获取短链接跳转后的真实地址和响应头信息的方法
2014/07/25 PHP
php登录超时检测功能实例详解
2017/03/21 PHP
关于ExtJS4.1:快捷键支持的问题
2013/04/24 Javascript
解析JavaScript中点号“.”的多义性
2013/12/02 Javascript
jQuery动画效果animate和scrollTop结合使用实例
2014/04/02 Javascript
JavaScript实现的购物车效果可以运用在好多地方
2014/05/09 Javascript
jquery ui bootstrap 实现自定义风格
2014/11/14 Javascript
Bootstarp风格的toggle效果分享
2016/02/23 Javascript
Node.js实用代码段之获取Buffer对象字节长度
2016/03/17 Javascript
JS Select下拉框(支持输入模糊查询)
2017/02/04 Javascript
开发Vue树形组件的示例代码
2017/12/21 Javascript
bootstrap table支持高度百分比的实例代码
2018/02/28 Javascript
解决vue 路由变化页面数据不刷新的问题
2018/03/13 Javascript
Vue 重置组件到初始状态的方法示例
2018/10/10 Javascript
JS实现audio音频剪裁剪切复制播放与上传(步骤详解)
2020/07/28 Javascript
python列表操作之extend和append的区别实例分析
2015/07/28 Python
解决Python命令行下退格,删除,方向键乱码(亲测有效)
2020/01/16 Python
VSCode配合pipenv搞定虚拟环境的实现方法
2020/05/17 Python
如何在mac下配置python虚拟环境
2020/07/06 Python
Python如何定义有默认参数的函数
2020/08/10 Python
15个应该掌握的Jupyter Notebook使用技巧(小结)
2020/09/23 Python
卡西欧B级产品官方网站:Casio Outlet
2018/05/22 全球购物
白俄罗斯在线大型超市:e-dostavka.by
2019/07/25 全球购物
Fossil德国官网:化石手表、手袋、珠宝及配件
2019/12/07 全球购物
英国最大的在线照明商店:Litecraft
2020/08/31 全球购物
什么是.net
2015/08/03 面试题
EJB需直接实现它的业务接口或Home接口吗,请简述理由
2016/11/23 面试题
希特勒经典演讲稿
2014/05/19 职场文书
公司董事长助理工作职责
2014/07/12 职场文书
2014年质检员工作总结
2014/11/18 职场文书
北京故宫导游词
2015/01/31 职场文书
Nginx同一个域名配置多个项目的实现方法
2021/03/31 Servers
Python实现生成bmp图像的方法
2021/06/13 Python