浅谈Python中的私有变量


Posted in Python onFebruary 28, 2018

私有变量表示方法

在变量前加上两个下划线的是私有变量。

class Teacher():
  def __init__(self,name,level):
    self.__name=name
    self.__level=level

  #获取老师的等级
  def get_level(self):
    return self.__level

  #获取名字
  def get_in_name(self):
    return self.__name

动态方法无法读取私有变量

即使是动态方法也无法读取私有变量,强行读取会报错。

#定义动态方法
def get_name(self):
  return self.__name

#动态方法赋值
Teacher.get_name=get_name


t=Teacher("GG",5)

print("level is: ",t.get_level())    #可行
print("name is",t.get_name())      #报错,显示没有该属性

动态方法无法修改私有变量

动态方法也无法修改私有变量,强行修改不会报错,但是没有效果。

t.set_name("NN")        #实际没有效果但是不报错
print(t.get_in_name())     #类内部获取名字,输出GG

强行读取和修改私有变量

那么强行要读取和改变私有变量怎么办呢?

有一个不推荐但是可行的办法:

私有属性在对象内部被名字是”类名_属性名”。

在这个例子里,是这样的:

print("name is",t._Teacher__name)      #输出GG
t._Teacher__name="AA"            #被改变了
print("name is",t._Teacher__name)      #输出AA
Python 相关文章推荐
编写Python脚本使得web页面上的代码高亮显示
Apr 24 Python
Python的条件语句与运算符优先级详解
Oct 13 Python
python和shell获取文本内容的方法
Jun 05 Python
pygame游戏之旅 如何制作游戏障碍
Nov 20 Python
python获取时间及时间格式转换问题实例代码详解
Dec 06 Python
Django项目主urls导入应用中views的红线问题解决
Aug 10 Python
python中时间转换datetime和pd.to_datetime详析
Aug 11 Python
python多进程(加入进程池)操作常见案例
Oct 21 Python
Pycharm使用远程linux服务器conda/python环境在本地运行的方法(图解))
Dec 09 Python
python文件绝对路径写法介绍(windows)
Dec 25 Python
使用 pytorch 创建神经网络拟合sin函数的实现
Feb 24 Python
MxNet预训练模型到Pytorch模型的转换方式
May 25 Python
python中logging包的使用总结
Feb 28 #Python
深入理解Python爬虫代理池服务
Feb 28 #Python
python实现装饰器、描述符
Feb 28 #Python
python安装教程
Feb 28 #Python
深入理解Python 关于supper 的 用法和原理
Feb 28 #Python
TensorFlow实现RNN循环神经网络
Feb 28 #Python
python使用TensorFlow进行图像处理的方法
Feb 28 #Python
You might like
LotusPhp笔记之:Cookie组件的使用详解
2013/05/06 PHP
php启动时候提示PHP startup的解决方法
2013/05/07 PHP
ci检测是ajax还是页面post提交数据的方法
2014/11/10 PHP
thinkPHP的表达式查询用法详解
2016/09/14 PHP
php图片合成方法(多张图片合成一张)
2017/11/25 PHP
javascript 数组的方法集合
2008/06/05 Javascript
location.href语句与火狐不兼容的问题
2010/07/04 Javascript
JQuery DataTable删除行后的页面更新利用Ajax解决
2013/05/17 Javascript
jquery实现动态菜单的实例代码
2013/11/28 Javascript
jQuery通过点击行来删除HTML表格行的实现示例
2014/09/10 Javascript
JavaScript中的数学运算介绍
2014/12/29 Javascript
javascript实现获取图片大小及图片等比缩放的方法
2016/11/24 Javascript
Jquery删除css属性的简单方法
2016/12/04 Javascript
js实现音乐播放控制条
2017/09/09 Javascript
Vue 兄弟组件通信的方法(不使用Vuex)
2017/10/26 Javascript
VUE2 前端实现 静态二级省市联动选择select的示例
2018/02/09 Javascript
使用sessionStorage解决vuex在页面刷新后数据被清除的问题
2018/04/13 Javascript
Node.js中Koa2在控制台输出请求日志的方法示例
2019/05/02 Javascript
vue 避免变量赋值后双向绑定的操作
2020/11/07 Javascript
Vue 防止短时间内连续点击后多次触发请求的操作
2020/11/11 Javascript
在Python的gevent框架下执行异步的Solr查询的教程
2015/04/16 Python
Python做文本按行去重的实现方法
2016/10/19 Python
Python发送http请求解析返回json的实例
2018/03/26 Python
PyQt5 pyqt多线程操作入门
2018/05/05 Python
python保存网页图片到本地的方法
2018/07/24 Python
对Python 多线程统计所有csv文件的行数方法详解
2019/02/12 Python
python爬虫实例之获取动漫截图
2020/05/31 Python
Herschel美国官网:背包、手提袋及配件
2020/03/10 全球购物
大学毕业生工作的自我评价
2013/10/01 职场文书
淘宝客服自我总结鉴定
2014/01/25 职场文书
葬礼司仪主持词
2014/03/31 职场文书
员工保密协议范本,您一定得收藏!很有用!
2019/08/08 职场文书
优秀范文:读《红岩》有感3篇
2019/10/14 职场文书
如何使用vue3打造一个物料库
2021/05/08 Vue.js
分享MySQL常用 内核 Debug 几种常见方法
2022/03/17 MySQL
MySQL的存储函数与存储过程的区别解析
2022/04/08 MySQL