python里运用私有属性和方法总结


Posted in Python onJuly 08, 2019

如何在PYTHON里运用私有属性和方法

class File:

  def __init__(self, name):

    self.name = name

    self.code = "ABCDEF"

    

file_A = File("file_A")

#假设我们有一个类,叫做文件类,设置一个对象file_A。

python里运用私有属性和方法总结

file_A.code

#如果直接调用属性,是可以看到属性里面有什么,但是如果这是个机密的密码不能公布,是不能这么处理的。

python里运用私有属性和方法总结

class File:

  def __init__(self, name):

    self.name = name

    self.__code = "ABCDEF"

    

file_A = File("file_A")

print(file_A.code)

#如果不想密码公布,可以对属性的名称加上__,但是这里出错了。

python里运用私有属性和方法总结

class File:

  def __init__(self, name):

    self.name = name

    self.__code = "ABCDEF"

    

file_A = File("file_A")

print(file_A.__code)

#很多人以为是因为外部的名称打少了__,但是这里依旧出错了,那是因为这是私有的属性。

python里运用私有属性和方法总结

class File:

  def __init__(self, name):

    self.name = name

    self.__code = "ABCDEF"

  def open(self):

    print("This is the AAA file!")

    

file_A = File("file_A")

file_A.open()

#除了属性,方法也能私有吗?答案是可以的。

python里运用私有属性和方法总结

class File:

  def __init__(self, name):

    self.name = name

    self.__code = "ABCDEF"

  def __open(self):

    print("This is the AAA file!")

    

file_A = File("file_A")

file_A.__open()

#私有方法以后,看出来和私有属性的返回结果是一致的。

python里运用私有属性和方法总结

class File:

  def __init__(self, name):

    self.name = name

    self.__code = "ABCDEF"

  def __open(self):

    print("This is the AAA file!")

    

file_A = File("file_A")

print(file_A._File__code)

file_A._File__open()

#在PYTHON里面如果在方法和属性那里加上_类名是可以看到私有的属性和方法的。

python里运用私有属性和方法总结

知识点扩展:

python默认的成员函数和成员变量都是公开的,python 私有属性和方法没有类似别的语言的public,private等关键词来修饰。 在python中定义私有变量只需要在变量名或函数名前加上 "__"两个下划线,那么这个函数或变量就会为私有的了。 在内部,python使用一种 name mangling 技术,将 __membername替换成 _classname__membername,所以你在外部使用原来的私有成员的名字时,会提示找不到。 比如:

class Person:

def __init__(self):
self.__name = 'haha'#私有属性
self.age = 22

def __get_name(self):##私有方法
return self.__name

def get_age(self):
return self.age

person = Person()
print person.get_age()
print person.__get_name()
运行结果是:22 Traceback (most recent call last): File "E:\pythoner\zenghe\jay.py", line 38, in print person.__get_name() AttributeError: Person instance has no attribute '__get_name'

我们这里定义的__name是私有属性,__get_name()是私有方法。如果直接访问的话,会提示找不到相关的属性或者方法,但是如果你真要访问私 有的相关数据的话, 也是可以访问的,严格地说,私有方法在它们的类外是可以访问的,只是不容易 处理。在 Python 中没有什么是真正私有的;在内部,私有方法和属性的名字被忽然改变和恢复,以致于使得它们看上去用它们给定的名字是无法使用的

Python 相关文章推荐
Python3实现连接SQLite数据库的方法
Aug 23 Python
Python模拟百度登录实例详解
Jan 20 Python
使用C++扩展Python的功能详解
Jan 12 Python
python检测空间储存剩余大小和指定文件夹内存占用的实例
Jun 11 Python
java中的控制结构(if,循环)详解
Jun 26 Python
python视频按帧截取图片工具
Jul 23 Python
Django url,从一个页面调到另个页面的方法
Aug 21 Python
利用PyCharm操作Github(仓库新建、更新,代码回滚)
Dec 18 Python
python GUI库图形界面开发之PyQt5表单布局控件QFormLayout详细使用方法与实例
Mar 06 Python
让你相见恨晚的十个Python骚操作
Nov 18 Python
将不规则的Python多维数组拉平到一维的方法实现
Jan 11 Python
python 如何在 Matplotlib 中绘制垂直线
Apr 02 Python
python设计微型小说网站(基于Django+Bootstrap框架)
Jul 08 #Python
python字符串查找函数的用法详解
Jul 08 #Python
python提取log文件内容并画出图表
Jul 08 #Python
Python OpenCV 使用滑动条来调整函数参数的方法
Jul 08 #Python
使用Python opencv实现视频与图片的相互转换
Jul 08 #Python
python基于paramiko将文件上传到服务器代码实现
Jul 08 #Python
Python脚本利用adb进行手机控制的方法
Jul 08 #Python
You might like
php基于mcrypt的加密解密实例
2014/10/27 PHP
CakePHP框架Model关联对象用法分析
2017/08/04 PHP
laravel ORM关联关系中的 with和whereHas用法
2019/10/16 PHP
jqPlot 图表中文API使用文档及源码和在线示例
2012/02/07 Javascript
javascript重写alert方法的实例代码
2013/03/29 Javascript
异步动态加载js与css文件的js代码
2013/09/15 Javascript
JS获取图片lowsrc属性的方法
2015/04/01 Javascript
javascript实现仿腾讯游戏选择
2015/05/14 Javascript
使用Node.js处理前端代码文件的编码问题
2016/02/16 Javascript
jQuery基础_入门必看知识点
2016/07/04 Javascript
JS HTML5拖拽上传图片预览
2016/07/18 Javascript
简单谈谈JS数组中的indexOf方法
2016/10/13 Javascript
javascript中setAttribute兼容性用法分析
2016/12/12 Javascript
jQuery插件zTree实现删除树子节点的方法示例
2017/03/08 Javascript
js图片放大镜效果实现方法详解
2020/10/28 Javascript
详解ionic本地相册、拍照、裁剪、上传(单图完全版)
2017/10/10 Javascript
详解vue配置后台接口方式
2019/03/29 Javascript
python输出指定月份日历的方法
2015/04/23 Python
Python基于DES算法加密解密实例
2015/06/03 Python
python将txt文件读入为np.array的方法
2018/10/30 Python
pandas使用apply多列生成一列数据的实例
2018/11/28 Python
Python创建字典的八种方式
2019/02/27 Python
python图像处理入门(一)
2019/04/04 Python
python中利用numpy.array()实现俩个数值列表的对应相加方法
2019/08/26 Python
浅谈python中统计计数的几种方法和Counter详解
2019/11/07 Python
使用Python爬虫爬取小红书完完整整的全过程
2021/01/19 Python
使用Python制作一个数据预处理小工具(多种操作一键完成)
2021/02/07 Python
HTML5 File API改善网页上传功能
2009/08/19 HTML / CSS
美国办公用品购物网站:Quill.com
2016/09/01 全球购物
高级人员简历的自我评价分享
2013/11/03 职场文书
优秀共产党员先进事迹
2014/01/27 职场文书
优秀大学生求职自荐信范文
2014/04/19 职场文书
逃课检讨书怎么写
2015/01/01 职场文书
2015年幼儿教师个人工作总结
2015/05/20 职场文书
读书笔记怎么写
2015/07/01 职场文书
庆七一活动简报
2015/07/20 职场文书