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 相关文章推荐
python脚本实现查找webshell的方法
Jul 31 Python
Python中if __name__ == "__main__"详细解释
Oct 21 Python
使用优化器来提升Python程序的执行效率的教程
Apr 02 Python
浅谈Python 中整型对象的存储问题
May 16 Python
PYTHON压平嵌套列表的简单实现
Jun 08 Python
Django ORM框架的定时任务如何使用详解
Oct 19 Python
Django admin实现图书管理系统菜鸟级教程完整实例
Dec 12 Python
Python Unittest自动化单元测试框架详解
Apr 04 Python
Python多进程池 multiprocessing Pool用法示例
Sep 07 Python
在Python中获取操作系统的进程信息
Aug 27 Python
python实现读取类别频数数据画水平条形图案例
Apr 24 Python
pytorch 多分类问题,计算百分比操作
Jul 09 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 session文件独占锁引起阻塞问题解决方法
2015/05/12 PHP
php curl抓取网页的介绍和推广及使用CURL抓取淘宝页面集成方法
2015/11/30 PHP
浅谈PHP拦截器之__set()与__get()的理解与使用方法
2016/10/18 PHP
jquery、js调用iframe父窗口与子窗口元素的方法整理
2014/07/31 Javascript
js控制div弹出层实现方法
2015/05/11 Javascript
js实现div拖动动画运行轨迹效果代码分享
2015/08/27 Javascript
jquery实现简单Tab切换菜单效果
2020/07/17 Javascript
Javascript highcharts 饼图显示数量和百分比实例代码
2016/12/06 Javascript
jquery中用函数来设置css样式
2016/12/22 Javascript
利用js判断手机是否安装某个app的多种方案
2017/02/13 Javascript
js实现4个方向滚动的球
2017/03/06 Javascript
jQuery插件FusionWidgets实现的AngularGauge图效果示例【附demo源码】
2017/03/23 jQuery
JavaScript你不知道的一些数组方法
2017/08/18 Javascript
ReactNative实现Toast的示例
2017/12/31 Javascript
Vue拖拽组件开发实例详解
2018/05/11 Javascript
layer.msg()去掉默认时间,实现手动关闭的方法
2019/09/12 Javascript
基于JavaScript判断两个对象内容是否相等
2020/01/10 Javascript
vue实现数字滚动效果
2020/06/29 Javascript
js实现随机点名功能
2020/12/23 Javascript
js闭包的9个使用场景
2020/12/29 Javascript
Python中装饰器的一个妙用
2015/02/08 Python
Win7下搭建python开发环境图文教程(安装Python、pip、解释器)
2016/05/17 Python
python3中dict(字典)的使用方法示例
2017/03/22 Python
Python创建或生成列表的操作方法
2019/06/19 Python
python 怎样将dataframe中的字符串日期转化为日期的方法
2019/09/26 Python
使用PyWeChatSpy自动回复微信拍一拍功能的实现代码
2020/07/02 Python
了解一下python内建模块collections
2020/09/07 Python
香港太阳眼镜网上商店:SmartBuyGlasses香港
2016/07/22 全球购物
校园报刊亭的创业计划书
2014/01/02 职场文书
公司门卫管理制度
2014/02/01 职场文书
大学生军训自我鉴定
2014/02/12 职场文书
保护环境倡议书300字
2014/05/19 职场文书
关于教师节的广播稿
2014/09/10 职场文书
2014年挂职干部工作总结
2014/12/06 职场文书
先进个人自荐书
2015/03/06 职场文书
一个家长教育孩子的心得体会
2016/01/15 职场文书