博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python类的私有变量
阅读量:6884 次
发布时间:2019-06-27

本文共 1010 字,大约阅读时间需要 3 分钟。

1.类的私有变量和私有方法 

1)_xx 以单下划线开头的表示的是protected类型的变量。即保护类型只能允许其本身与子类进行访问。若内部变量标示,如:当使用“from Mimport”时,不会将以一个下划线开头的对象引入。

 

2)__xx 双下划线的表示的是私有类型的变量。只能允许这个类本身进行访问了,连子类也不可以用于命名一个类属性(类变量),调用时名字被改变(在类FooBar内部,__boo变成_FooBar__boo,如self._FooBar__boo)

 

3)__xx__定义的是特列方法。用户控制的命名空间内的变量或是属性,如init , __import__或是file 。只有当文档有说明时使用,不要自己定义这类变量。(就是说这些是python内部定义的变量名)

 

4)python默认的成员函数和成员变量都是公开的,没有像其他类似语言的public,private等关键字修饰。但是可以在变量前面加上两个下划线"_",这样的话函数或变量就变成私有的。 **情况就是当变量被标记为私有后,在变量的前端插入类名,在类名前添加一个下划线"_",即形成了_ClassName__变量名.**

 

Python内置类属性

__dict__ : 类的属性(包含一个字典,由类的数据属性组成)

__doc__ : 类的文档字符串

__module__: 类定义所在的模块(类的全名是'__main__.className',如果类位于一个导入模块mymod中,那么className.__module__等于 mymod)

__bases__: 类的所有父类构成元素(包含了一个由所有父类组成的元组)


例子:

class Student(object):

   _name = "huang"

   __sex = "male"

   def hello(self):

       print(self._name)

       print(self.__sex)

   def get_value(self):

       return self.__sex

a = Student()

print (a.hello())

print (a.get_value())


结果:

huang

male

None

male


本文转自 huangzp168 51CTO博客,原文链接:http://blog.51cto.com/huangzp/1979800,如需转载请自行联系原作者
你可能感兴趣的文章
Skype for Business Server 2015-04-前端服务器-3-安装-管理工具
查看>>
docker入门指南(转载)
查看>>
Java RGB数组图像合成 ImageCombining (整理)
查看>>
第八届河南省赛F.Distribution(水题)
查看>>
Android 下拉刷新上拉载入效果功能
查看>>
第九篇 :微信公众平台开发实战Java版之如何实现自定义分享内容
查看>>
SDL2源码分析1:初始化(SDL_Init())
查看>>
swift通过摄像头读取每一帧的图片,并且做识别做人脸识别
查看>>
你对自己的定位是什么,就能成为什么样的人(转)
查看>>
全文检索引擎Solr系列——整合中文分词组件IKAnalyzer
查看>>
学习mongo系列(二) 新建数据库,collection ,insert(),save()
查看>>
chrome浏览器下用jQuery的load函数来跨域加载页面,响应状态status为(canceled)是什么情况? JSON和JSONP,也许你会豁然开朗,含jQuery用例...
查看>>
Tomcat 配置 HTTPS双向认证
查看>>
ZOJ 3511 Cake Robbery(线段树)
查看>>
[傅里叶变换及其应用学习笔记] 二十三. 线性时不变系统的基本定义
查看>>
[New Portal]Windows Azure Virtual Machine (3) 在VM上挂载磁盘
查看>>
字体随着ProgressBar的加载而滚动
查看>>
Handler 机制再了解
查看>>
如果你是前端工程师,把你的网站或者你知道的网站加进来吧
查看>>
阿里云产品头条(2017年12月刊)
查看>>