#!/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 访问属性

最新文章

  1. Carousel 旋转画廊特效的疑难杂症
  2. TFS2017持续集成构建
  3. 谈谈iOS中的锁
  4. 序列化--dict与(file)文件读写
  5. OD调试篇9
  6. 【转】Swift开源项目精选
  7. AsyncTask和Handler的优缺点比较
  8. HDU 6121 Build a tree(找规律+模拟)
  9. OpenCV3.0 HDR(高动态范围)示例代码以及用法
  10. pat 1014 1017 排队类问题
  11. win10安装wmi报错问题
  12. Median
  13. Centos7下使用Ceph-deploy快速部署Ceph分布式存储-操作记录
  14. sql server 索引阐述系列五 索引参数与碎片
  15. 关于mysql远程登录问题
  16. struts2框架之标签
  17. emq数据库插件
  18. EsayUI + MVC + ADO.NET(工作单元)
  19. 前端开发 —— google chart 的使用
  20. 关于lockkeyword

热门文章

  1. Exercise01_01
  2. 使用jmatio读写matlab数据文件
  3. Android Studio 中修改versionCode跟versionName
  4. 用正则把url解析为对象
  5. CSS部分属性的深入学习
  6. C/C++ Windows移植到Linux
  7. C#的Xamarin开发小米盒子应用并以WCF实现微信通知
  8. OpenGL实现多层绘制(Layered Rendering) [转]
  9. webpacke install vue application 报错 Failed at the phantomjs-prebuilt@2.1.14 install script
  10. Mybatis学习记录(二)----mybatis开发dao的方法