浅谈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利用pyHook实现监听用户鼠标与键盘事件
Aug 21 Python
使用Python编写一个简单的tic-tac-toe游戏的教程
Apr 16 Python
Python 3.x 新特性及10大变化
Jun 12 Python
Python操作MySQL数据库9个实用实例
Dec 11 Python
Python自动化运维和部署项目工具Fabric使用实例
Sep 18 Python
Python自定义装饰器原理与用法实例分析
Jul 16 Python
Python搭建代理IP池实现检测IP的方法
Oct 27 Python
Pytorch基本变量类型FloatTensor与Variable用法
Jan 08 Python
python实现超级马里奥
Mar 18 Python
Python读取ini配置文件传参的简单示例
Jan 05 Python
Python使用protobuf序列化和反序列化的实现
May 19 Python
Python OpenGL基本配置方式
May 20 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
Windows7下PHP开发环境安装配置图文方法
2010/05/20 PHP
php实现水仙花数示例分享
2014/04/03 PHP
一次因composer错误使用引发的问题与解决
2019/03/06 PHP
详解Laravel设置多态关系模型别名的方式
2019/10/17 PHP
一个很简单的jquery+xml+ajax的无刷新树结构(无css,后台是c#)
2010/06/02 Javascript
js实现格式化金额,字符,时间的方法
2015/02/26 Javascript
nodejs实现遍历文件夹并统计文件大小
2015/05/28 NodeJs
JavaScript中的Math.LN2属性用法详解
2015/06/12 Javascript
jquery实现选中单选按钮下拉伸缩效果
2015/08/06 Javascript
跟我学习javascript的函数调用和构造函数调用
2015/11/16 Javascript
jQuery使用$.ajax提交表单完整实例
2015/12/11 Javascript
浅析AMD CMD CommonJS规范--javascript模块化加载学习心得总结
2016/03/16 Javascript
js 获取本地文件及目录的方法(推荐)
2016/11/10 Javascript
微信小程序 input输入框控件详解及实例(多种示例)
2016/12/14 Javascript
使用Ajax和Jquery配合数据库实现下拉框的二级联动的示例
2018/01/25 jQuery
vue基于element-ui的三级CheckBox复选框功能的实现代码
2018/10/15 Javascript
[05:15]2018年度CS GO社区贡献奖-完美盛典
2018/12/16 DOTA
跟老齐学Python之Import 模块
2014/10/13 Python
利用Python实现简单的相似图片搜索的教程
2015/04/23 Python
Python中死锁的形成示例及死锁情况的防止
2016/06/14 Python
利用Django内置的认证视图实现用户密码重置功能详解
2017/11/24 Python
django初始化数据库的实例
2018/05/27 Python
对python3标准库httpclient的使用详解
2018/12/18 Python
对python mayavi三维绘图的实现详解
2019/01/08 Python
Python爬虫库BeautifulSoup获取对象(标签)名,属性,内容,注释
2020/01/25 Python
python实现sm2和sm4国密(国家商用密码)算法的示例
2020/09/26 Python
基于HTML5 Canvas的3D动态Chart图表的示例
2017/11/02 HTML / CSS
匡威英国官网:Converse英国
2018/12/02 全球购物
房地产销售经理岗位职责
2014/01/01 职场文书
解除劳动合同协议书范本
2014/04/14 职场文书
教师学习八项规定六项禁令思想汇报
2014/09/27 职场文书
社区党的群众路线教育实践活动总结材料
2014/10/31 职场文书
2015年税务稽查工作总结
2015/05/26 职场文书
《中华上下五千年》读后感3篇
2019/11/29 职场文书
Smart 2 车辆代号 HC11 全新谍照曝光
2022/04/21 数码科技
Python加密与解密模块hashlib与hmac
2022/06/05 Python