Python面向对象之私有属性和私有方法应用案例分析


Posted in Python onDecember 31, 2019

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

01. 应用场景及定义方式

应用场景

在实际开发中,对象 的 某些属性或方法 可能只希望 在对象的内部被使用,而 不希望在外部被访问到
私有属性 就是 对象 不希望公开的 属性
私有方法 就是 对象 不希望公开的 方法

定义方式

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

 Python面向对象之私有属性和私有方法应用案例分析

class Women:
  def __init__(self, name):
    self.name = name
    # 不要问女生的年龄
    self.__age = 18
  def __secret(self):
    print("我的年龄是 %d" % self.__age)
xiaofang = Women("小芳")
# 私有属性,外部不能直接访问
# print(xiaofang.__age)
# 私有方法,外部不能直接调用
# xiaofang.__secret()

02. 伪私有属性和私有方法(科普)

提示:在日常开发中,不要使用这种方式,访问对象的 私有属性 或 私有方法

Python 中,并没有 真正意义 的 私有

在给 属性、方法 命名时,实际是对 名称 做了一些特殊处理,使得外界无法访问到

处理方式:在 名称 前面加上 _类名 => _类名__名称

# 私有属性,外部不能直接访问到
print(xiaofang._Women__age)
# 私有方法,外部不能直接调用
xiaofang._Women__secret()

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

Python 相关文章推荐
Python的dict字典结构操作方法学习笔记
May 07 Python
Python中正则表达式详解
May 17 Python
Python使用分布式锁的代码演示示例
Jul 30 Python
将python运行结果保存至本地文件中的示例讲解
Jul 11 Python
Python的log日志功能及设置方法
Jul 11 Python
Python大数据之使用lxml库解析html网页文件示例
Nov 16 Python
Pytorch中实现只导入部分模型参数的方式
Jan 02 Python
关于Python 中的时间处理包datetime和arrow的方法详解
Mar 19 Python
Django实现图片上传功能步骤解析
Apr 22 Python
使用python修改文件并立即写回到原始位置操作(inplace读写)
Jun 28 Python
Python extract及contains方法代码实例
Sep 11 Python
Django mysqlclient安装和使用详解
Sep 17 Python
Pycharm最新激活码2019(推荐)
Dec 31 #Python
python ftplib模块使用代码实例
Dec 31 #Python
深入了解如何基于Python读写Kafka
Dec 31 #Python
Python面向对象之继承原理与用法案例分析
Dec 31 #Python
pytorch中nn.Conv1d的用法详解
Dec 31 #Python
Python实现剪刀石头布小游戏(与电脑对战)
Dec 31 #Python
Pytorch之卷积层的使用详解
Dec 31 #Python
You might like
解析php中两种缩放图片的函数,为图片添加水印
2013/06/14 PHP
php使用ftp实现文件上传与下载功能
2017/07/21 PHP
Laravel学习教程之从入口到输出过程详解
2017/08/27 PHP
php的无刷新操作实现方法分析
2020/02/28 PHP
Javascript下的keyCode键码值表
2007/04/10 Javascript
javascript中IE浏览器不支持NEW DATE()带参数的解决方法
2012/03/01 Javascript
jQuery的Ajax的自动完成功能控件简要说明
2013/02/22 Javascript
JS获取图片实际宽高及根据图片大小进行自适应
2013/08/11 Javascript
js call方法详细介绍(js 的继承)
2013/11/18 Javascript
javascript计算星座属相(十二生肖属相)示例代码
2014/01/09 Javascript
JQuery判断radio(单选框)是否选中和获取选中值方法总结
2015/04/15 Javascript
JS根据生日算年龄的方法
2015/05/05 Javascript
浅析script标签中的defer与async属性
2016/11/30 Javascript
jQuery实现div跟随鼠标移动
2020/08/20 jQuery
Bootstrap模态框插入视频的实现代码
2017/06/25 Javascript
Vue学习笔记进阶篇之单元素过度
2017/07/19 Javascript
windows系统下更新nodejs版本的方案
2017/11/24 NodeJs
javascript数据类型中的一些小知识点(推荐)
2019/04/18 Javascript
jquery实现动态创建form并提交的方法示例
2019/05/27 jQuery
Element ui 下拉多选时新增一个选择所有的选项
2019/08/21 Javascript
Javascript实现简易天数计算器
2020/05/18 Javascript
python实现绘制树枝简单示例
2014/07/24 Python
使用graphics.py实现2048小游戏
2015/03/10 Python
Python基础教程之利用期物处理并发
2018/03/29 Python
pandas获取groupby分组里最大值所在的行方法
2018/04/20 Python
python实战教程之自动扫雷
2018/07/13 Python
python pytest进阶之xunit fixture详解
2019/06/27 Python
Python利用pip安装tar.gz格式的离线资源包
2020/09/14 Python
11月升旗仪式讲话稿
2014/02/15 职场文书
教师民族团结演讲稿
2014/08/27 职场文书
青年联谊会致辞
2015/07/31 职场文书
关于运动会的广播稿
2015/08/19 职场文书
2019职场实习报告该怎么写?
2019/07/01 职场文书
2019森林防火宣传标语大全!
2019/07/03 职场文书
2019年行政人事个人工作总结范本!
2019/07/19 职场文书
MySql新手入门的基本操作汇总
2021/05/13 MySQL