浅谈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 相关文章推荐
Django中使用group_by的方法
May 26 Python
Python Nose框架编写测试用例方法
Oct 26 Python
从请求到响应过程中django都做了哪些处理
Aug 01 Python
Python实现读取txt文件中的数据并绘制出图形操作示例
Feb 26 Python
python3 tkinter实现点击一个按钮跳出另一个窗口的方法
Jun 13 Python
python lambda表达式在sort函数中的使用详解
Aug 28 Python
使用tqdm显示Python代码执行进度功能
Dec 08 Python
python使用配置文件过程详解
Dec 28 Python
Django自定义全局403、404、500错误页面的示例代码
Mar 08 Python
Python自动化操作实现图例绘制
Jul 09 Python
python实现简单的学生管理系统
Feb 22 Python
python编程项目中线上问题排查与解决
Nov 01 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中file_exists与is_file,is_dir的区别介绍
2012/09/12 PHP
使用php验证复选框有效性的示例
2013/11/13 PHP
ThinkPHP3.1新特性之动态设置自动完成和自动验证示例
2014/06/19 PHP
浅谈php自定义错误日志
2015/02/13 PHP
php接口实现拖拽排序功能
2018/04/23 PHP
PHP实现的权重算法示例【可用于游戏根据权限来随机物品】
2019/02/15 PHP
JavaScript的单例模式 (singleton in Javascript)
2010/06/11 Javascript
JQuery1.6 使用方法三
2011/11/23 Javascript
使用Node.js实现一个简单的FastCGI服务器实例
2014/06/09 Javascript
JSON字符串转JSON对象
2015/07/31 Javascript
js操作DOM--添加、删除节点的简单实例
2016/07/08 Javascript
基于BootStrap实现局部刷新分页实例代码
2016/08/08 Javascript
jquery实现的回旋滚动效果完整实例【附demo源码下载】
2016/09/20 Javascript
概述VUE2.0不可忽视的很多变化
2016/09/25 Javascript
nodejs用gulp管理前端文件方法
2018/06/24 NodeJs
vue.js动画中的js钩子函数的实现
2018/07/06 Javascript
node.js到底要不要加分号浅析
2018/07/11 Javascript
jQuery实现菜单的显示和隐藏功能示例
2018/07/24 jQuery
记录一次完整的react hooks实践
2019/03/11 Javascript
ES6 Class中实现私有属性的一些方法总结
2019/07/08 Javascript
js简单实现自动生成表格功能示例
2020/06/02 Javascript
openlayers4实现点动态扩散
2020/08/17 Javascript
通过实例了解Render Props回调地狱解决方案
2020/11/04 Javascript
[01:15:29]DOTA2上海特级锦标赛主赛事日 - 3 胜者组第二轮#2Secret VS EG第三局
2016/03/04 DOTA
Python字符串替换实例分析
2015/05/11 Python
浅谈使用Python内置函数getattr实现分发模式
2018/01/22 Python
python basemap 画出经纬度并标定的实例
2019/07/09 Python
基于python调用psutil模块过程解析
2019/12/20 Python
PyCharm使用Docker镜像搭建Python开发环境
2019/12/26 Python
Pycharm自带Git实现版本管理的方法步骤
2020/09/18 Python
HTML5触摸事件(touchstart、touchmove和touchend)的实现
2020/05/08 HTML / CSS
澳大利亚领先的宠物用品商店:VetSupply
2017/09/08 全球购物
班主任与学生安全责任书
2014/07/25 职场文书
教师职业道德事迹材料
2014/08/18 职场文书
土地租赁协议书
2015/01/29 职场文书
2015重阳节敬老活动总结
2015/07/29 职场文书