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之通过Python连接数据库
Oct 28 Python
python实现中文输出的两种方法
May 09 Python
python实现聊天小程序
Mar 13 Python
Python爬虫实现全国失信被执行人名单查询功能示例
May 03 Python
基于python3 OpenCV3实现静态图片人脸识别
May 25 Python
python 去除二维数组/二维列表中的重复行方法
Jan 23 Python
python os模块简单应用示例
May 23 Python
python实现在内存中读写str和二进制数据代码
Apr 24 Python
Python脚本实现监听服务器的思路代码详解
May 28 Python
Keras之fit_generator与train_on_batch用法
Jun 17 Python
如何基于python把文字图片写入word文档
Jul 31 Python
python搜索算法原理及实例讲解
Nov 18 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类
2006/10/09 PHP
如何从一个php文件向另一个地址post数据,不用表单和隐藏的变量的
2007/03/06 PHP
php echo()和print()、require()和include()函数区别说明
2010/03/27 PHP
ExtJS与PHP、MySQL实现存储的方法
2010/04/02 PHP
PHP输出缓存ob系列函数详解
2014/03/11 PHP
JS如何实现文本框随文本的长度而增长
2015/07/30 Javascript
详解Bootstrap四种图片样式
2016/01/04 Javascript
前端学习笔记style,currentStyle,getComputedStyle的用法与区别
2016/05/28 Javascript
nodejs 使用nodejs-websocket模块实现点对点实时通讯
2018/11/28 NodeJs
ES6知识点整理之函数对象参数默认值及其解构应用示例
2019/04/17 Javascript
解决Layui中templet中a的onclick参数传递的问题
2019/09/20 Javascript
如何优雅地取消 JavaScript 异步任务
2020/03/22 Javascript
JS 设计模式之:单例模式定义与实现方法浅析
2020/05/06 Javascript
[46:23]完美世界DOTA2联赛PWL S2 FTD vs Magma 第一场 11.20
2020/11/23 DOTA
python实现通过shelve修改对象实例
2014/09/26 Python
深入学习Python中的装饰器使用
2016/06/20 Python
python3 对list中每个元素进行处理的方法
2018/06/29 Python
python实现决策树分类
2018/08/30 Python
python批量替换文件名中的共同字符实例
2020/03/05 Python
小 200 行 Python 代码制作一个换脸程序
2020/05/12 Python
Python ckeditor富文本编辑器代码实例解析
2020/06/22 Python
推荐值得学习的12款python-web开发框架
2020/08/10 Python
Python读取多列数据以及用matplotlib制作图表方法实例
2020/09/23 Python
Python命令行参数argv和argparse该如何使用
2021/02/08 Python
利用CSS3 动画 绘画 圆形动态时钟
2018/03/20 HTML / CSS
使用PDF.JS插件在HTML中预览PDF文件的方法
2018/08/29 HTML / CSS
世界上最大的在线旅行社新加坡网站:Expedia新加坡
2016/08/25 全球购物
美国在线咖啡、茶和餐厅供应商:LollicupStore
2018/05/04 全球购物
最便宜促销价格订机票:Airpaz(总部设在印尼,支持中文)
2018/11/13 全球购物
Static Nested Class 和 Inner Class的不同
2013/11/28 面试题
环境工程大学生个人的自我评价
2013/10/08 职场文书
蛋糕店的商业计划书范文
2014/01/27 职场文书
商场开业庆典策划方案
2014/06/02 职场文书
警察群众路线整改措施
2014/09/26 职场文书
节约用电倡议书
2015/04/28 职场文书
2015年质量管理工作总结范文
2015/05/18 职场文书