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 的 with 语句详解
Jun 13 Python
Python lambda和Python def区别分析
Nov 30 Python
Python输出PowerPoint(ppt)文件中全部文字信息的方法
Apr 28 Python
Python中逗号的三种作用实例分析
Jun 08 Python
Go/Python/Erlang编程语言对比分析及示例代码
Apr 23 Python
TensorFLow 变量命名空间实例
Feb 11 Python
详解Python修复遥感影像条带的两种方式
Feb 23 Python
将python字符串转化成长表达式的函数eval实例
May 11 Python
详解scrapy内置中间件的顺序
Sep 28 Python
Python虚拟环境virtualenv创建及使用过程图解
Dec 08 Python
Python数据分析之pandas函数详解
Apr 21 Python
Python使用psutil库对系统数据进行采集监控的方法
Aug 23 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
关于jQuery参考实例 1.0 jQuery的哲学
2013/04/07 Javascript
jquery中通过父级查找进行定位示例
2013/06/28 Javascript
JavaScript弹出窗口方法汇总
2014/08/12 Javascript
JS实现的驼峰式和连字符式转换功能分析
2016/12/21 Javascript
js获取元素的偏移量offset简单方法(必看)
2017/07/05 Javascript
react系列从零开始_简单谈谈react
2017/07/06 Javascript
js 索引下标之li集合绑定点击事件
2018/01/12 Javascript
jQuery实现的下雪动画效果示例【附源码下载】
2018/02/02 jQuery
在Vue中使用highCharts绘制3d饼图的方法
2018/02/08 Javascript
node.js遍历目录的方法示例
2018/08/01 Javascript
基于JavaScript实现瀑布流布局
2018/08/15 Javascript
详解js访问对象的属性和方法
2018/10/25 Javascript
如何在Angular应用中创建包含组件方法示例
2019/03/23 Javascript
微信小程序非跳转式组件授权登录的方法示例
2019/05/22 Javascript
聊聊Vue中provide/inject的应用详解
2019/11/10 Javascript
通过Kettle自定义jar包供javascript使用
2020/01/29 Javascript
详谈Object.defineProperty 及实现数据双向绑定
2020/07/18 Javascript
vant组件中 dialog的确认按钮的回调事件操作
2020/11/04 Javascript
Python使用CMD模块更优雅的运行脚本
2015/05/11 Python
Python实现批量检测HTTP服务的状态
2016/10/27 Python
python用match()函数爬数据方法详解
2019/07/23 Python
python网络编程 使用UDP、TCP协议收发信息详解
2019/08/29 Python
Pycharm最常用的快捷键及使用技巧
2020/03/05 Python
Python3+selenium实现cookie免密登录的示例代码
2020/03/18 Python
详解python方法之绑定方法与非绑定方法
2020/08/17 Python
Python collections模块的使用方法
2020/10/09 Python
万豪国际住宅与别墅集团:Homes & Villas by Marriott International
2020/10/08 全球购物
学习十八届三中全会精神实施方案
2014/02/17 职场文书
公司合作意向书
2014/04/01 职场文书
2015年大学班主任工作总结
2015/04/30 职场文书
天气温馨提示语
2015/07/14 职场文书
2016教师廉洁教育心得体会
2016/01/13 职场文书
2016年共产党员个人承诺书
2016/03/24 职场文书
基于Python和openCV实现图像的全景拼接详细步骤
2021/10/05 Python
Python读写yaml文件
2022/03/20 Python
Nginx如何限制IP访问只允许特定域名访问
2022/07/23 Servers