浅谈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 urlopen 使用小示例
Sep 06 Python
python通过加号运算符操作列表的方法
Jul 28 Python
Python面向对象特殊成员
Apr 24 Python
Python 的类、继承和多态详解
Jul 16 Python
python 函数传参之传值还是传引用的分析
Sep 07 Python
对python中的argv和argc使用详解
Dec 15 Python
Tensorflow实现酸奶销量预测分析
Jul 19 Python
Python 实现try重新执行
Dec 21 Python
pytorch之inception_v3的实现案例
Jan 06 Python
Django中F函数的使用示例代码详解
Jul 06 Python
Python 在函数上添加包装器
Jul 28 Python
如何快速理解python的垃圾回收机制
Sep 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循环输出数据库内容的代码
2008/05/24 PHP
php5 图片验证码实现代码
2009/12/11 PHP
php发送http请求的常用方法分析
2016/11/08 PHP
Laravel创建数据库表结构的例子
2019/10/09 PHP
js checkbox(复选框) 使用集锦
2009/04/28 Javascript
jquery 学习之二 属性 文本与值(text,val)
2010/11/25 Javascript
jquery中ajax学习笔记3
2011/10/16 Javascript
JS中使用sort结合localeCompare实现中文排序实例
2014/07/23 Javascript
JavaScript Sort 的一个错误用法示例
2015/03/20 Javascript
Vue中的v-cloak使用解读
2017/03/27 Javascript
ES6中module模块化开发实例浅析
2017/04/06 Javascript
jQuery实现在HTML文档加载完毕后自动执行某个事件的方法
2017/05/08 jQuery
vue2.0全局组件之pdf详解
2017/06/26 Javascript
详解 vue.js用法和特性
2017/10/15 Javascript
Makefile/cmake/node-gyp中区分判断不同平台的方法
2018/12/18 Javascript
简单易扩展可控性强的Jquery转盘抽奖程序
2019/03/16 jQuery
Python类的基础入门知识
2008/11/24 Python
python安装oracle扩展及数据库连接方法
2017/02/21 Python
PyCharm代码提示忽略大小写设置方法
2018/10/28 Python
Python Process多进程实现过程
2019/10/22 Python
python json 递归打印所有json子节点信息的例子
2020/02/27 Python
使用pytorch 筛选出一定范围的值
2020/06/28 Python
如何使用Cython对python代码进行加密
2020/07/08 Python
python 爬虫如何实现百度翻译
2020/11/16 Python
美国Rue La La闪购网站:奢侈品、中高档品牌限时折扣
2016/10/19 全球购物
诗狄娜化妆品官方网站:Stila Cosmetics
2016/12/21 全球购物
欧洲最大的美妆零售网站:Feelunique
2017/01/14 全球购物
Luxplus丹麦:香水和个人护理折扣
2018/04/23 全球购物
函数只定义了一次, 调用了一次, 但编译器提示非法重定义了-什么问题?
2014/10/03 面试题
毕业实习个人鉴定范文
2013/12/10 职场文书
计算机数据库专业职业生涯规划书
2014/02/08 职场文书
应届生求职自荐信
2014/07/04 职场文书
2014年少先队工作总结
2014/12/03 职场文书
2014年医务科工作总结
2014/12/18 职场文书
继承权公证书范本
2015/01/23 职场文书
党员读书活动心得体会
2016/01/14 职场文书