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 相关文章推荐
10种检测Python程序运行时间、CPU和内存占用的方法
Apr 01 Python
Python中转换角度为弧度的radians()方法
May 18 Python
在Python的Flask框架中构建Web表单的教程
Jun 04 Python
Python内置模块turtle绘图详解
Dec 09 Python
python接口调用已训练好的caffe模型测试分类方法
Aug 26 Python
Pytorch修改ResNet模型全连接层进行直接训练实例
Sep 10 Python
Python实现把多维数组展开成DataFrame
Nov 30 Python
opencv设置采集视频分辨率方式
Dec 10 Python
python实现输入三角形边长自动作图求面积案例
Apr 12 Python
python爬虫工具例举说明
Nov 30 Python
python中使用np.delete()的实例方法
Feb 01 Python
Python数组变形的几种实现方法
May 30 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
9个实用的PHP代码片段分享
2015/01/22 PHP
PHP异常处理定义与使用方法分析
2017/07/25 PHP
Laravel中七个非常有用但很少人知道的Carbon方法
2017/09/21 PHP
Javascript实现仿WebQQ界面的“浮云”兼容 IE7以上版本及FF
2011/04/27 Javascript
document.getElementById介绍
2011/09/13 Javascript
jQuery下实现等待指定元素加载完毕(可改成纯js版)
2013/07/11 Javascript
JS将数字转换成三位逗号分隔的样式(示例代码)
2014/02/19 Javascript
JavaScript判断变量是对象还是数组的方法
2014/08/28 Javascript
js获取元素外链样式的方法
2015/01/27 Javascript
JS基于Mootools实现的个性菜单效果代码
2015/10/21 Javascript
JavaScript的代码编写格式规范指南
2015/12/07 Javascript
JQuery实现网页右侧随动广告特效
2016/01/17 Javascript
JavaScript中数组去除重复的三种方法
2016/04/22 Javascript
Bootstrap警告框(Alert)插件使用方法
2017/03/21 Javascript
Angular2使用jQuery的方法教程
2017/05/28 jQuery
JQuery Ajax执行跨域请求数据的解决方案
2018/12/10 jQuery
JavaScript模板引擎应用场景及实现原理详解
2018/12/14 Javascript
taro开发微信小程序的实践
2019/05/21 Javascript
微信小程序实现渐入渐出动画效果
2019/06/13 Javascript
微信小程序自定义头部导航栏和导航栏背景图片 navigationStyle问题
2019/07/26 Javascript
原生js实现轮播图特效
2020/05/04 Javascript
[04:32]DOTA2著名解说配音敌法师 现场专访海涛怒切假腿
2013/12/20 DOTA
详解python中 os._exit() 和 sys.exit(), exit(0)和exit(1) 的用法和区别
2017/06/23 Python
在python 中实现运行多条shell命令
2019/01/07 Python
pandas修改DataFrame列名的实现方法
2019/02/22 Python
PYcharm 激活方法(推荐)
2020/03/23 Python
为什么称python为胶水语言
2020/06/16 Python
Opencv 图片的OCR识别的实战示例
2021/03/02 Python
html5新增的定时器requestAnimationFrame实现进度条功能
2018/12/13 HTML / CSS
大学毕业感言一句话
2014/02/06 职场文书
门面房租房协议书
2014/08/20 职场文书
员工2014年度工作总结
2014/12/09 职场文书
孟佩杰观后感
2015/06/17 职场文书
婚礼迎宾词大全
2015/08/10 职场文书
任命书格式范文
2015/09/22 职场文书
25张裸眼3D图片,带你重温童年的记忆,感受3D的魅力
2022/02/06 杂记