浅谈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进行数据科学工作的简单入门教程
Apr 01 Python
python检测是文件还是目录的方法
Jul 03 Python
Python中__init__.py文件的作用详解
Sep 18 Python
python3中dict(字典)的使用方法示例
Mar 22 Python
python处理Excel xlrd的简单使用
Sep 12 Python
Python wxPython库使用wx.ListBox创建列表框示例
Sep 03 Python
python设置环境变量的作用和实例
Jul 09 Python
python调用webservice接口的实现
Jul 12 Python
python线程定时器Timer实现原理解析
Nov 30 Python
Python操作Jira库常用方法解析
Apr 10 Python
python 图像判断,清晰度(明暗),彩色与黑白实例
Jun 04 Python
分享3个非常实用的 Python 模块
Mar 03 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 cli 小技巧
2013/06/03 PHP
PHP判断图片格式的七种方法小结
2013/06/03 PHP
php socket客户端及服务器端应用实例
2014/07/04 PHP
实例讲解php数据访问
2016/05/09 PHP
PHP数组操作简单案例分析
2016/10/15 PHP
推荐9款炫酷的基于jquery的页面特效
2014/12/07 Javascript
浅谈JavaScript Array对象
2014/12/29 Javascript
浅谈javascript中的闭包
2015/05/13 Javascript
JS右下角广告窗口代码(可收缩、展开及关闭)
2015/09/04 Javascript
javascript中window.open在原来的窗口中打开新的窗口(不同名)
2015/11/15 Javascript
跟我学习javascript的隐式强制转换
2015/11/16 Javascript
JS与HTML结合使用marquee标签实现无缝滚动效果代码
2016/07/05 Javascript
Vue数据驱动模拟实现3
2017/01/11 Javascript
JS+Canvas绘制动态时钟效果
2017/11/10 Javascript
如何让你的JS代码更好看易读
2017/12/01 Javascript
React Router v4 入坑指南(小结)
2018/04/08 Javascript
解决vue+element 键盘回车事件导致页面刷新的问题
2018/08/25 Javascript
vue实现多条件和模糊搜索功能
2019/05/28 Javascript
js计算最大公约数和最小公倍数代码实例
2019/09/11 Javascript
解决layui调用自定义方法提示未定义的问题
2019/09/14 Javascript
uploadify插件实现多个图片上传并预览
2019/09/30 Javascript
vue-simple-uploader上传成功之后的response获取代码
2020/09/07 Javascript
python实现的用于搜索文件并进行内容替换的类实例
2015/06/28 Python
python处理“
2019/06/10 Python
python flask 如何修改默认端口号的方法步骤
2019/07/12 Python
Python使用Opencv实现边缘检测以及轮廓检测的实现
2020/12/31 Python
利用Python过滤相似文本的简单方法示例
2021/02/03 Python
Shopbop中文官网:美国亚马逊旗下时尚购物网站
2020/12/15 全球购物
中学教师实习自我鉴定
2013/09/28 职场文书
专科毕业生求职简历的自我评价
2013/10/12 职场文书
个人查摆剖析材料
2014/02/04 职场文书
计算机相关专业自荐信
2014/07/02 职场文书
课程设计的心得体会
2014/09/03 职场文书
公司岗位说明书
2015/10/08 职场文书
2016年清明节期间群众祭祀活动工作总结
2016/04/01 职场文书
使用springboot暴露oracle数据接口的问题
2021/05/07 Oracle