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的装饰器使用详解
Jun 26 Python
Python安装lz4-0.10.1遇到的坑
May 20 Python
Python文件读写保存操作的示例代码
Sep 14 Python
Python中反射和描述器总结
Sep 23 Python
Python中时间datetime的处理与转换用法总结
Feb 18 Python
Python3.5内置模块之shelve模块、xml模块、configparser模块、hashlib、hmac模块用法分析
Apr 27 Python
基于python的itchat库实现微信聊天机器人(推荐)
Oct 29 Python
使用Python测试Ping主机IP和某端口是否开放的实例
Dec 17 Python
Python While循环语句实例演示及原理解析
Jan 03 Python
flask框架url与重定向操作实例详解
Jan 25 Python
使用Python操作ArangoDB的方法步骤
Feb 02 Python
python IDLE添加行号显示教程
Apr 25 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中error_reporting()用法详解
2015/08/31 PHP
php大小写转换函数(strtolower、strtoupper)用法介绍
2017/11/17 PHP
JAVASCRIPT style 中visibility和display之间的区别
2010/01/22 Javascript
利用jQuery操作对象数组的实现代码
2011/04/27 Javascript
深入理解javaScript中的事件驱动
2013/05/21 Javascript
用Javascript来生成ftp脚本的小例子
2013/07/03 Javascript
javascript设计模式--策略模式之输入验证
2015/11/27 Javascript
javascript常见数字进制转换实例分析
2016/04/21 Javascript
Angular 输入框实现自定义验证功能
2017/02/19 Javascript
Bootstrap显示与隐藏简单实现代码
2017/03/06 Javascript
详解从Vue.js源码看异步更新DOM策略及nextTick
2017/10/11 Javascript
Express下采用bcryptjs进行密码加密的方法
2018/02/07 Javascript
在 Linux/Unix 中不重启 Vim 而重新加载 .vimrc 文件的流程
2018/03/21 Javascript
[原创]微信小程序获取网络类型的方法示例
2019/03/01 Javascript
10个最受欢迎的 JavaScript框架(推荐)
2019/04/24 Javascript
40行代码把Vue3的响应式集成进React做状态管理
2020/05/20 Javascript
JS的时间格式化和时间戳转换函数示例详解
2020/07/27 Javascript
vue2.0 watch里面的 deep和immediate用法说明
2020/10/30 Javascript
详解Python3的TFTP文件传输
2018/06/26 Python
Python实现在某个数组中查找一个值的算法示例
2018/06/27 Python
Django中使用CORS实现跨域请求过程解析
2019/08/05 Python
Django对接支付宝实现支付宝充值金币功能示例
2019/12/17 Python
python爬虫开发之PyQuery模块详细使用方法与实例全解
2020/03/09 Python
keras实现调用自己训练的模型,并去掉全连接层
2020/06/09 Python
MAC平台基于Python Appium环境搭建过程图解
2020/08/13 Python
html5使用canvas画空心圆与实心圆
2014/12/15 HTML / CSS
美国摄影爱好者购物网站:Focus Camera
2016/10/21 全球购物
协议书范本
2014/04/23 职场文书
社区清明节活动总结
2014/07/04 职场文书
2014年秋季新学期寄语
2014/08/02 职场文书
员工自我工作评价
2015/03/06 职场文书
家长通知书家长意见
2015/06/03 职场文书
Golang之sync.Pool使用详解
2021/05/06 Golang
python实现A*寻路算法
2021/06/13 Python
pandas进行数据输入和输出的方法详解
2022/03/23 Python
详解Golang如何实现支持随机删除元素的堆
2022/09/23 Python