浅谈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爬虫爬取某站上海租房图片
Feb 04 Python
使用Python通过win32 COM打开Excel并添加Sheet的方法
May 02 Python
Python3使用turtle绘制超立方体图形示例
Jun 19 Python
python破解bilibili滑动验证码登录功能
Sep 11 Python
Python通过递归获取目录下指定文件代码实例
Nov 07 Python
keras模型可视化,层可视化及kernel可视化实例
Jan 24 Python
python读取csv文件指定行的2种方法详解
Feb 13 Python
python matplotlib.pyplot.plot()参数用法
Apr 14 Python
如何用Python 实现全连接神经网络(Multi-layer Perceptron)
Oct 15 Python
python 多线程中join()的作用
Oct 29 Python
Python实现给PDF添加水印的方法
Jan 25 Python
python+pytest接口自动化之token关联登录的实现
Apr 06 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函数解决SQL injection
2006/12/09 PHP
php自动给网址加上链接的方法
2015/06/02 PHP
在PHP站点的页面上添加Facebook评论插件的实例教程
2016/01/08 PHP
PHP 类与构造函数解析
2017/02/06 PHP
PHP+Ajax实现上传文件进度条动态显示进度功能
2018/06/04 PHP
js Array操作的最简短最容易理解方法
2013/12/09 Javascript
js与css实现弹出层覆盖整个页面的方法
2014/12/13 Javascript
JS实现弹性漂浮效果的广告代码
2015/09/02 Javascript
深入浅析JavaScript中对事件的三种监听方式
2015/09/29 Javascript
JS+Canvas绘制时钟效果
2020/08/20 Javascript
BootStrap tooltip提示框使用小结
2016/10/26 Javascript
JS树形菜单组件Bootstrap TreeView使用方法详解
2016/12/21 Javascript
JS实现的数字格式化功能示例
2017/02/10 Javascript
JavaScript实现审核流程状态的动态显示进度条
2017/03/15 Javascript
微信小程序 实现列表项滑动显示删除按钮的功能
2017/04/13 Javascript
Bootstrap图片轮播效果详解
2017/10/17 Javascript
详解vue+vuex+koa2开发环境搭建及示例开发
2018/01/22 Javascript
vue-cli 组件的导入与使用教程详解
2018/04/11 Javascript
JS实现判断有效的数独算法示例
2019/02/25 Javascript
微信小程序配置服务器提示验证token失败的解决方法
2019/04/03 Javascript
Vue+Element实现动态生成新表单并添加验证功能
2019/05/23 Javascript
Emberjs 通过 axios 下载文件的方法
2019/09/03 Javascript
js实现石头剪刀布游戏
2020/10/11 Javascript
Python与Java间Socket通信实例代码
2017/03/06 Python
Python饼状图的绘制实例
2019/01/15 Python
python 计算两个列表的相关系数的实现
2019/08/29 Python
python实现定时发送邮件到指定邮箱
2020/12/23 Python
详解Sticky Footer 绝对底部的两种套路
2017/11/03 HTML / CSS
美国购买韩国护肤和美容产品网站:Althea Korea
2020/11/16 全球购物
竞争上岗演讲稿
2014/01/05 职场文书
顶岗实习接收函
2014/01/09 职场文书
消防应急演练方案
2014/02/12 职场文书
运动会方阵口号
2014/06/07 职场文书
2015最新婚礼司仪主持词
2015/06/30 职场文书
解析redis hash应用场景和常用命令
2021/08/04 Redis
解决IIS7下无法绑定https主机的问题
2022/04/29 Servers