Python 类的私有属性和私有方法实例分析


Posted in Python onSeptember 29, 2019

本文实例讲述了Python 类的私有属性和私有方法。分享给大家供大家参考,具体如下:

xx:公有变量

_xx:公有变量或方法,不能通过import导入其他模块(只有模块内部使用)。类对象和子类可以访问

__xx:私有变量或方法(伪私有),类外部不能直接访问。

__xx__:公有变量或方法,子类可以访问。魔法方法或属性(例如:__init__),不推荐这样命名。

xx_:公有变量或方法。一般为了避免和python关键字冲突,不推荐这样命名。

在 定义属性或方法时,在 属性名或者方法名前 增加 两个下划线,定义的就是 私有 属性或方法

demo.py(私有属性,私有方法):

class Women:
  # 定义属性和方法时,属性名或方法名前增加两个下划线__表示私有属性或私有方法
  def __init__(self, name):
    self.name = name # 公有属性,外界可以直接访问
    self.__age = 18  # 私有属性,外界及其子类不能直接访问
  # 私有方法,外界不能直接访问
  def __secret(self):
    # 对象内部可以直接访问对象的私有属性
    print("%s 的年龄是 %d" % (self.name, self.__age))
xiaofang = Women("小芳")
# 私有属性,在外界或其子类不能够被直接访问
# print(xiaofang.__age)
# 私有方法,同样不允许在外界直接访问
# xiaofang.__secret()
# xiaofang.__age = 20  # 只是动态绑定了一个新属性,并不会影响私有的__age属性。
# 可以通过 _类名__私有属性名/方法名 的方式强行访问私有属性和私有方法 (不推荐)
print(xiaofang._Women__age)
xiaofang._Women__secret()

运行结果:

18
小芳 的年龄是 18

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
Python的内存泄漏及gc模块的使用分析
Jul 16 Python
进一步了解Python中的XML 工具
Apr 13 Python
Python的__builtin__模块中的一些要点知识
May 02 Python
python xml.etree.ElementTree遍历xml所有节点实例详解
Dec 04 Python
使用Python生成XML的方法实例
Mar 21 Python
基于python socketserver框架全面解析
Sep 21 Python
Django 2.0版本的新特性抢先看!
Jan 05 Python
python中的随机函数小结
Jan 27 Python
对numpy中array和asarray的区别详解
Apr 17 Python
pandas 两列时间相减换算为秒的方法
Apr 20 Python
Python中的pathlib.Path为什么不继承str详解
Jun 23 Python
Django高级编程之自定义Field实现多语言
Jul 02 Python
Django REST Framework之频率限制的使用
Sep 29 #Python
基于Python实现大文件分割和命名脚本过程解析
Sep 29 #Python
Python2比较当前图片跟图库哪个图片相似的方法示例
Sep 28 #Python
python使用opencv实现马赛克效果示例
Sep 28 #Python
python打包成so文件过程解析
Sep 28 #Python
python基于FTP实现文件传输相关功能代码实例
Sep 28 #Python
python网络爬虫 Scrapy中selenium用法详解
Sep 28 #Python
You might like
PHP程序员面试 切忌急功近利(更需要注重以后的发展)
2010/09/01 PHP
php中sql注入漏洞示例 sql注入漏洞修复
2014/01/24 PHP
thinkphp区间查询、统计查询与SQL直接查询实例分析
2014/11/24 PHP
php删除二维数组中的重复值方法
2018/03/12 PHP
JS加ASP二级域名转向的代码
2007/05/17 Javascript
由document.body和document.documentElement想到的
2009/04/13 Javascript
锋利的jQuery 要点归纳(三) jQuery中的事件和动画(上:事件篇)
2010/03/24 Javascript
filters.revealTrans.Transition使用方法小结
2010/08/19 Javascript
jQuery中index()的用法分析
2014/09/05 Javascript
JS常用函数使用指南
2014/11/23 Javascript
JavaScript实现select添加option
2015/07/03 Javascript
JavaScript中的Repaint和Reflow用法详解
2015/07/27 Javascript
jquery可定制的在线UEditor编辑器
2015/11/17 Javascript
JS组件Bootstrap Table使用实例分享
2016/05/30 Javascript
AngularJS基础 ng-value 指令简单示例
2016/08/03 Javascript
BackBone及其实例探究_动力节点Java学院整理
2017/07/14 Javascript
js制作简单的音乐播放器的示例代码
2017/08/28 Javascript
微信小程序实现多选删除列表数据功能示例
2019/01/15 Javascript
JS实现可切换图片的幻灯切换效果示例
2019/05/24 Javascript
vue 中固定导航栏的实例代码
2019/11/01 Javascript
JavaScript this使用方法图解
2020/02/04 Javascript
python并发编程之多进程、多线程、异步和协程详解
2016/10/28 Python
Python实现自动上京东抢手机
2018/02/06 Python
Python走楼梯问题解决方法示例
2018/07/25 Python
pytorch 输出中间层特征的实例
2019/08/17 Python
Django框架HttpRequest对象用法实例分析
2019/11/01 Python
详解django使用include无法跳转的解决方法
2020/03/19 Python
python和JavaScript哪个容易上手
2020/06/23 Python
P D PAOLA意大利官网:西班牙著名的珠宝首饰品牌
2019/09/24 全球购物
3个CCIE对一个工程师的面试题
2012/05/06 面试题
会计出纳岗位职责
2013/12/25 职场文书
乡党政领导班子群众路线教育实践活动个人对照检查材料
2014/09/20 职场文书
党员教师四风自我剖析材料
2014/09/30 职场文书
后进基层党组织整改方案
2014/10/25 职场文书
银行优秀员工推荐信
2015/03/24 职场文书
《黄山奇石》教学反思
2016/02/18 职场文书