浅谈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中asyncore异步模块的用法及实现httpclient的实例
Jun 28 Python
Python判断变量是否为Json格式的字符串示例
May 03 Python
Python 装饰器使用详解
Jul 29 Python
python抓取网页中链接的静态图片
Jan 29 Python
在Mac下使用python实现简单的目录树展示方法
Nov 01 Python
python实现对输入的密文加密
Mar 20 Python
十分钟搞定pandas(入门教程)
Jun 21 Python
python绘制双Y轴折线图以及单Y轴双变量柱状图的实例
Jul 08 Python
程序员的七夕用30行代码让Python化身表白神器
Aug 07 Python
Django 项目布局方法(值得推荐)
Mar 22 Python
使用keras实现Precise, Recall, F1-socre方式
Jun 15 Python
Jupyter notebook 更改文件打开的默认路径操作
May 21 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笔记之:php函数range() round()和list()的使用说明
2013/04/26 PHP
PHP永久登录、记住我功能实现方法和安全做法
2015/04/27 PHP
php中final关键字用法分析
2016/12/07 PHP
php基于自定义函数记录log日志方法
2017/07/21 PHP
PHP实现的操作数组类库定义与用法示例
2019/05/24 PHP
PHP使用ajax的post方式下载excel文件简单示例
2019/08/06 PHP
event.X和event.clientX的区别分析
2011/10/06 Javascript
js 输出内容到新窗口具体实现代码
2013/05/31 Javascript
javascript实现促销倒计时+fixed固定在底部
2013/09/18 Javascript
document.getElementById获取控件对象为空的解决方法
2013/11/20 Javascript
利用js正则表达式验证手机号,email地址,邮政编码
2014/01/23 Javascript
分享五个有用的jquery小技巧
2015/10/08 Javascript
学习Bootstrap滚动监听 附调用方法
2016/07/02 Javascript
全面解析JavaScript中“&&”和“||”操作符(总结篇)
2016/07/18 Javascript
vue store之状态管理模式的详细介绍
2019/06/13 Javascript
更强大的vue ssr实现预取数据的方式
2019/07/19 Javascript
微信小程序tabBar设置实例解析
2019/11/14 Javascript
微信小程序停止其他视频播放当前视频的实例代码
2019/12/25 Javascript
[42:32]完美世界DOTA2联赛PWL S2 LBZS vs FTD.C 第二场 11.27
2020/12/01 DOTA
Python实现简单的获取图片爬虫功能示例
2017/07/12 Python
Python内置函数——__import__ 的使用方法
2017/11/24 Python
django框架自定义用户表操作示例
2018/08/07 Python
python 实现批量xls文件转csv文件的方法
2018/10/23 Python
python实现抠图给证件照换背景源码
2019/08/20 Python
python实现简单遗传算法
2020/09/18 Python
HTML5 本地存储 LocalStorage详解
2016/06/24 HTML / CSS
英国奢侈皮具品牌:Aspinal of London
2018/09/02 全球购物
介绍一下SOA和SOA的基本特征
2016/02/24 面试题
领导党性分析材料
2014/02/15 职场文书
求职意向书
2014/04/01 职场文书
教师岗位职责范本
2015/04/02 职场文书
2015企业年终工作总结范文
2015/05/27 职场文书
毕业晚宴祝酒词
2015/08/11 职场文书
读《儒林外史》有感:少一些功利,多一些真诚
2020/01/19 职场文书
Ajax请求超时与网络异常处理图文详解
2021/05/23 Javascript
关于Oracle12C默认用户名system密码不正确的解决方案
2021/10/16 Oracle