浅谈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 ZipFile模块详解
Nov 01 Python
从零学python系列之浅谈pickle模块封装和拆封数据对象的方法
May 23 Python
利用Python实现简单的相似图片搜索的教程
Apr 23 Python
python中lambda与def用法对比实例分析
Apr 30 Python
Python工程师面试题 与Python Web相关
Jan 14 Python
利用PyInstaller将python程序.py转为.exe的方法详解
May 03 Python
python socket网络编程之粘包问题详解
Apr 28 Python
Pytorch技巧:DataLoader的collate_fn参数使用详解
Jan 08 Python
python模拟哔哩哔哩滑块登入验证的实现
Apr 24 Python
使用keras实现Precise, Recall, F1-socre方式
Jun 15 Python
Python爬取豆瓣数据实现过程解析
Oct 27 Python
基于 Python 实践感知器分类算法
Jan 07 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
一些操作和快捷键的理解和讨论
2020/03/04 星际争霸
如何做到多笔资料的同步
2006/10/09 PHP
php读取xml实例代码
2010/01/28 PHP
让CodeIgniter的ellipsize()支持中文截断的方法
2014/06/12 PHP
PHP实现简易用户登录系统
2020/07/10 PHP
jQuery 操作下拉列表框实现代码
2010/02/22 Javascript
js实现在页面上弹出蒙板技巧简单实用
2013/04/16 Javascript
javascript 通用loading动画效果实例代码
2014/01/14 Javascript
jQuery中hide()方法用法实例
2014/12/24 Javascript
JavaScript操作Cookie方法实例分析
2015/05/27 Javascript
功能强大的Bootstrap使用手册(一)
2016/08/02 Javascript
Js操作DOM元素及获取浏览器高宽的简单方法
2016/09/08 Javascript
Bootstrap作品展示站点实战项目2
2016/10/14 Javascript
easyui导出excel无法弹出下载框的快速解决方法
2016/11/10 Javascript
Vue2实现组件props双向绑定
2016/12/02 Javascript
Vue.js实现在下拉列表区域外点击即可关闭下拉列表的功能(自定义下拉列表)
2017/05/30 Javascript
JavaScript设计模式之单例模式详解
2017/06/09 Javascript
Vue.js 2.0和Cordova开发webApp环境搭建方法
2018/02/26 Javascript
Vue监听页面刷新和关闭功能
2019/06/20 Javascript
JavaScript setInterval()与setTimeout()计时器
2019/12/27 Javascript
uni-app 组件里面获取元素宽高的实现
2019/12/27 Javascript
[51:06]DOTA2-DPC中国联赛 正赛 Elephant vs Aster BO3 第二场 1月26日
2021/03/11 DOTA
python 数据加密代码
2008/12/24 Python
Python列表推导式的使用方法
2013/11/21 Python
Python学习之asyncore模块用法实例教程
2014/09/29 Python
Python中datetime常用时间处理方法
2015/06/15 Python
python编写简单爬虫资料汇总
2016/03/22 Python
python实现简易通讯录修改版
2018/03/13 Python
numpy中实现ndarray数组返回符合特定条件的索引方法
2018/04/17 Python
python3.6、opencv安装环境搭建过程(图文教程)
2019/11/05 Python
利用python在excel中画图的实现方法
2020/03/17 Python
18-35岁旅游团的全球领导者:Contiki
2017/02/08 全球购物
沃尔玛旗下墨西哥超市:Bodega Aurrera
2020/11/13 全球购物
上班迟到检讨书范文300字
2014/11/02 职场文书
个人学习群众路线心得体会
2014/11/05 职场文书
涨工资申请书应该怎么写?
2019/07/08 职场文书