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入门篇之面向对象
Oct 20 Python
python服务器与android客户端socket通信实例
Nov 12 Python
浅析Python中else语句块的使用技巧
Jun 16 Python
python数据封装json格式数据
Mar 04 Python
python3读取csv和xlsx文件的实例
Jun 22 Python
Flask实现跨域请求的处理方法
Sep 27 Python
详解django的serializer序列化model几种方法
Oct 16 Python
Python 实现中值滤波、均值滤波的方法
Jan 09 Python
对python中类的继承与方法重写介绍
Jan 20 Python
python把转列表为集合的方法
Jun 28 Python
Python aiohttp百万并发极限测试实例分析
Oct 26 Python
学会迭代器设计模式,帮你大幅提升python性能
Jan 03 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
超神学院:天使彦公认最美的三个视角,网友:我的天使快下凡吧!
2020/03/02 国漫
PHP面向对象分析设计的61条军规小结
2010/07/17 PHP
PHP file_get_contents设置超时处理方法
2013/09/30 PHP
PHP中Socket连接及读写数据超时问题分析
2016/07/19 PHP
javascript下对于事件、事件流、事件触发的顺序随便说说
2010/07/17 Javascript
js变量以及其作用域详解
2020/07/18 Javascript
jQuery提交表单ajax查询实例代码
2012/10/07 Javascript
查看大图功能代码jquery版
2013/11/05 Javascript
jquery easyui combox一些实用的小方法
2013/12/25 Javascript
node.js中的fs.renameSync方法使用说明
2014/12/16 Javascript
jQuery中andSelf()方法用法实例
2015/01/08 Javascript
jQuery实现仿百度帖吧头部固定导航效果
2015/08/07 Javascript
原生JS京东轮播图代码
2017/03/22 Javascript
Vue 兄弟组件通信的方法(不使用Vuex)
2017/10/26 Javascript
javascript实现切割轮播效果
2019/11/28 Javascript
详解vue 中 scoped 样式作用域的规则
2020/09/14 Javascript
[05:39]2014DOTA2西雅图国际邀请赛 淘汰赛7月14日TOPPLAY
2014/07/14 DOTA
用Python编写一个简单的Lisp解释器的教程
2015/04/03 Python
python单例模式的多种实现方法
2019/07/26 Python
Python qrcode 生成一个二维码的实例详解
2020/02/12 Python
基于Python的Jenkins的二次开发操作
2020/05/12 Python
Python爬取微信小程序通用方法代码实例详解
2020/09/29 Python
美国成衣女装品牌:CHICO’S
2016/09/19 全球购物
德国运动营养和健身网上商店:Myprotein.de
2018/07/18 全球购物
Foreo国际站:Foreo International
2018/10/29 全球购物
Amcal中文官网:澳洲综合性连锁药房
2019/03/28 全球购物
Fossil德国官网:化石手表、手袋、珠宝及配件
2019/12/07 全球购物
EJB的几种类型
2012/08/15 面试题
国庆节文艺活动方案
2014/02/03 职场文书
校园文化标语
2014/06/18 职场文书
求职教师自荐书
2014/06/19 职场文书
见习报告格式要求
2014/11/04 职场文书
法人代表证明书范本
2015/06/18 职场文书
聘任通知书
2015/09/21 职场文书
Python如何识别银行卡卡号?
2021/06/10 Python
Jackson 反序列化时实现大小写不敏感设置
2021/06/29 Java/Android