python-class(5)
2024-09-02 22:14:00
#!/usr/bin/env python
#-*- coding:utf-8 -*-
############################
#File Name: class5.py
#Author: frank
#Email: frank0903@aliyun.com
#Created Time:2017-09-04 17:22:45
############################ '''
类属性与方法 类的私有属性
__private_attrs:两个下划线开头,声明该属性为私有,不能在类的外部被使用或直接访问。在类内部的方法中使用时 self.__private_attrs。 类的方法
在类的内部,使用 def 关键字可以为类定义一个方法,与一般函数定义不同,类方法必须包含参数 self,且为第一个参数 类的私有方法
__private_method:两个下划线开头,声明该方法为私有方法,不能在类地外部调用。在类的内部调用 self.__private_methods
''' '''
单下划线、双下划线、头尾双下划线说明:
__foo__: 定义的是特列方法,类似 __init__() 之类的。
_foo: 以单下划线开头的表示的是 protected 类型的变量,即保护类型只能允许其本身与子类进行访问,不能用于 from module import *
__foo: 双下划线的表示的是私有类型(private)的变量, 只能是允许这个类本身进行访问了。
''' class JustCounter:
__secretCount = 0 # 私有变量
publicCount = 0 # 公开变量 def count(self):
self.__secretCount += 1
self.publicCount += 1
print self.__secretCount
self.__myMth() def __myMth(self):
print "private method" counter = JustCounter()
counter.count()
counter.count()
#counter.__myMth() #AttributeError: JustCounter instance has no attribute '__myMth'
print counter.publicCount
#print counter.__secretCount # AttributeError: JustCounter instance has no attribute '__secretCount'
print counter._JustCounter__secretCount #Python不允许实例化的类访问私有数据,但你可以使用 object._className__attrName 访问属性
最新文章
- Carousel 旋转画廊特效的疑难杂症
- TFS2017持续集成构建
- 谈谈iOS中的锁
- 序列化--dict与(file)文件读写
- OD调试篇9
- 【转】Swift开源项目精选
- AsyncTask和Handler的优缺点比较
- HDU 6121 Build a tree(找规律+模拟)
- OpenCV3.0 HDR(高动态范围)示例代码以及用法
- pat 1014 1017 排队类问题
- win10安装wmi报错问题
- Median
- Centos7下使用Ceph-deploy快速部署Ceph分布式存储-操作记录
- sql server 索引阐述系列五 索引参数与碎片
- 关于mysql远程登录问题
- struts2框架之标签
- emq数据库插件
- EsayUI + MVC + ADO.NET(工作单元)
- 前端开发 —— google chart 的使用
- 关于lockkeyword
热门文章
- Exercise01_01
- 使用jmatio读写matlab数据文件
- Android Studio 中修改versionCode跟versionName
- 用正则把url解析为对象
- CSS部分属性的深入学习
- C/C++ Windows移植到Linux
- C#的Xamarin开发小米盒子应用并以WCF实现微信通知
- OpenGL实现多层绘制(Layered Rendering) [转]
- webpacke install vue application 报错 Failed at the phantomjs-prebuilt@2.1.14 install script
- Mybatis学习记录(二)----mybatis开发dao的方法