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函数中定义参数的四种方式
Nov 30 Python
python引用DLL文件的方法
May 11 Python
python从入门到精通(DAY 3)
Dec 20 Python
python自动12306抢票软件实现代码
Feb 24 Python
Python中str.join()简单用法示例
Mar 20 Python
python实现数据写入excel表格
Mar 25 Python
对python numpy.array插入一行或一列的方法详解
Jan 29 Python
django+echart数据动态显示的例子
Aug 12 Python
Python re正则表达式元字符分组()用法分享
Feb 10 Python
Python读取表格类型文件代码实例
Feb 17 Python
Python开发之pip安装及使用方法详解
Feb 21 Python
python图片剪裁代码(图片按四个点坐标剪裁)
Mar 10 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 cron中的批处理
2008/09/16 PHP
PHP中的类型约束介绍
2015/05/11 PHP
Jquery Ajax学习实例4 向WebService发出请求,返回实体对象的异步调用
2010/03/16 Javascript
通过上下左右键和回车键切换光标实现代码
2013/03/08 Javascript
JavaScript解析json格式数据简单示例
2014/12/09 Javascript
浅谈JavaScript中Date(日期对象),Math对象
2015/02/05 Javascript
JavaScript模拟实现继承的方法
2015/03/30 Javascript
javascript如何操作HTML下拉列表标签
2015/08/20 Javascript
JavaScript获取短信验证码(周期性)
2016/12/29 Javascript
JS前端开发判断是否是手机端并跳转操作(小结)
2017/02/05 Javascript
小程序实现列表删除功能
2018/10/30 Javascript
浅谈vue后台管理系统权限控制思考与实践
2018/12/19 Javascript
Cocos2d实现刮刮卡效果
2018/12/20 Javascript
详解Vue用cmd创建项目
2019/02/12 Javascript
JavaScript多种页面刷新方法小结
2019/04/04 Javascript
监控Nodejs的性能实例代码
2019/07/02 NodeJs
JS 数组和对象的深拷贝操作示例
2020/06/06 Javascript
Vue实现开关按钮拖拽效果
2020/09/22 Javascript
举例讲解Python程序与系统shell交互的方式
2015/04/09 Python
简单介绍Python的Django框架的dj-scaffold项目
2015/05/30 Python
Django中的FBV和CBV用法详解
2019/09/15 Python
使用Python实现 学生学籍管理系统
2019/11/26 Python
Pytorch基本变量类型FloatTensor与Variable用法
2020/01/08 Python
html5 http的轮询和Websocket原理
2018/10/19 HTML / CSS
Tarte Cosmetics官网:美国最受欢迎的化妆品公司之一
2017/08/24 全球购物
电脑教师的教学自我评价
2013/11/26 职场文书
手机业务员岗位职责
2013/12/13 职场文书
中专药剂专业应届毕的自我评价
2013/12/27 职场文书
毕业生求职自荐信怎么写
2014/01/08 职场文书
大学班长的职责
2014/01/27 职场文书
部队万能检讨书
2014/02/20 职场文书
中药专业自荐信范文
2014/03/18 职场文书
师德师风承诺书
2014/05/23 职场文书
银行会计主管岗位职责
2014/10/01 职场文书
2014年教师思想工作总结
2014/12/03 职场文书
太行山上观后感
2015/06/05 职场文书