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中from module import * 的一个坑
Jul 20 Python
Python实现对excel文件列表值进行统计的方法
Jul 25 Python
python实现list元素按关键字相加减的方法示例
Jun 09 Python
python 接口返回的json字符串实例
Mar 27 Python
Python----数据预处理代码实例
Mar 20 Python
python使用turtle绘制国际象棋棋盘
May 23 Python
Pytorch卷积层手动初始化权值的实例
Aug 17 Python
基于Python获取城市近7天天气预报
Nov 26 Python
pytorch自定义二值化网络层方式
Jan 07 Python
Python版中国省市经纬度
Feb 11 Python
使用python客户端访问impala的操作方式
Mar 28 Python
关于python中readlines函数的参数hint的相关知识总结
Jun 24 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自动提交表单的方法(基于fsockopen与curl)
2016/05/09 PHP
thinkphp3.x中cookie方法的用法分析
2016/05/19 PHP
yii2简单使用less代替css示例
2017/03/10 PHP
在laravel中使用with实现动态添加where条件
2019/10/10 PHP
js本身的局限性 别让javascript做太多事
2010/03/23 Javascript
HTML DOM的nodeType值介绍
2011/03/31 Javascript
Javascript中找到子元素在父元素内相对位置的代码
2012/07/21 Javascript
JQuery实现用户名无刷新验证的小例子
2013/03/22 Javascript
高效率JavaScript编写技巧整理
2013/08/23 Javascript
jquery(hide方法)隐藏指定元素实例
2013/11/11 Javascript
javascript刷新父页面的各种方法汇总
2014/09/03 Javascript
javascript面向对象之定义成员方法实例分析
2015/01/13 Javascript
全系IE支持Bootstrap的解决方法
2015/10/19 Javascript
jQuery如何防止Ajax重复提交
2016/10/14 Javascript
利用CSS、JavaScript及Ajax实现图片预加载的方法
2016/11/29 Javascript
JavaScript中for循环的几种写法与效率总结
2017/02/03 Javascript
jquery操作ul的一些操作笔记整理(干货)
2017/08/31 jQuery
Node.JS使用Sequelize操作MySQL的示例代码
2017/10/09 Javascript
vue mintui-Loadmore结合实现下拉刷新和上拉加载示例
2017/10/12 Javascript
详解vuex之store源码简单解析
2019/06/13 Javascript
Vue 实现前进刷新后退不刷新的效果
2019/06/14 Javascript
微信小程序跨页面数据传递事件响应实现过程解析
2019/12/19 Javascript
[51:07]VGJ.S vs Pain 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/20 DOTA
Python实现的彩票机选器实例
2015/06/17 Python
Python制作钉钉加密/解密工具
2016/12/07 Python
Python进阶-函数默认参数(详解)
2017/05/18 Python
python中kmeans聚类实现代码
2018/02/23 Python
基于python3的socket聊天编程
2020/02/17 Python
AmazeUi Tree(树形结构) 应用小结
2020/08/17 HTML / CSS
什么样的创业计划书可行性高?
2014/02/01 职场文书
高中学生期末评语
2014/04/25 职场文书
工伤事故赔偿协议书(标准)
2014/09/29 职场文书
祝寿主持词
2015/07/02 职场文书
公文写作:新员工转正申请书范本3篇!
2019/08/07 职场文书
pytorch中的numel函数用法说明
2021/05/13 Python
python神经网络 tf.name_scope 和 tf.variable_scope 的区别
2022/05/04 Python