浅谈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解析并修改XML文档的方法
Oct 15 Python
详解Python多线程Selenium跨浏览器测试
Apr 01 Python
解决Python 中英文混输格式对齐的问题
Jul 16 Python
Python函数中不定长参数的写法
Feb 13 Python
75条笑死人的知乎神回复,用60行代码就爬完了
May 06 Python
使用OpenCV实现仿射变换—平移功能
Aug 29 Python
Python环境Pillow( PIL )图像处理工具使用解析
Sep 12 Python
python tkinter组件使用详解
Sep 16 Python
Python基础之字符串操作常用函数集合
Feb 09 Python
Python常用GUI框架原理解析汇总
Dec 07 Python
解决pytorch 的state_dict()拷贝问题
Mar 03 Python
超级详细实用的pycharm常用快捷键
May 12 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
php中在PDO中使用事务(Transaction)
2011/05/14 PHP
超棒的javascript页面顶部卷动广告效果
2007/12/01 Javascript
javascript 弹出窗口中是否显示地址栏的实现代码
2011/04/14 Javascript
jQuery 源码分析笔记(2) 变量列表
2011/05/28 Javascript
jQuery实现的图片分组切换焦点图插件
2015/01/06 Javascript
JS简单限制textarea内输入字符数量的方法
2015/10/14 Javascript
AngularJS实现textarea记录只能输入规定数量的字符并显示
2016/04/26 Javascript
移动端滑动插件Swipe教程
2016/10/16 Javascript
微信小程序 火车票查询实例讲解
2016/10/17 Javascript
webpack2.0搭建前端项目的教程详解
2017/04/05 Javascript
Vue.js devtool插件安装后无法使用的解决办法
2017/11/27 Javascript
vue生成token并保存到本地存储中
2018/07/17 Javascript
Vue 后台管理类项目兼容IE9+的方法示例
2019/02/20 Javascript
使用Vue中 v-for循环列表控制按钮隐藏显示功能
2019/04/23 Javascript
详解iframe跨域的几种常用方法(小结)
2019/04/29 Javascript
小程序实现日历左右滑动效果
2019/10/21 Javascript
vue+vant实现商品列表批量倒计时功能
2020/01/13 Javascript
jquery实现上传图片功能
2020/06/29 jQuery
Vue 构造选项 - 进阶使用说明
2020/08/14 Javascript
jQuery实现电梯导航模块
2020/12/22 jQuery
vue前端和Django后端如何查询一定时间段内的数据
2021/02/28 Vue.js
详解Python中列表和元祖的使用方法
2015/04/25 Python
python使用线程封装的一个简单定时器类实例
2015/05/16 Python
详谈Python2.6和Python3.0中对除法操作的异同
2017/04/28 Python
tensorflow更改变量的值实例
2018/07/30 Python
Java多线程实现四种方式原理详解
2020/06/02 Python
html5的自定义data-*属性与jquery的data()方法的使用
2014/07/02 HTML / CSS
同学聚会主持词
2014/03/18 职场文书
家长寄语大全
2014/04/02 职场文书
银行内勤岗位职责
2014/04/09 职场文书
餐饮商业计划书范文
2014/04/29 职场文书
2015年食品安全宣传周活动总结
2015/07/09 职场文书
信息技术研修心得体会
2016/01/08 职场文书
机关单位2016年创先争优活动总结
2016/04/05 职场文书
中学生打架检讨书之500字
2019/08/06 职场文书
详解运行Python的神器Jupyter Notebook
2021/06/03 Python