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 相关文章推荐
在Django框架中编写Context处理器的方法
Jul 20 Python
在Python中使用正则表达式的方法
Aug 13 Python
详解Python中最难理解的点-装饰器
Apr 03 Python
python实时分析日志的一个小脚本分享
May 07 Python
使用python生成目录树
Mar 29 Python
python中使用psutil查看内存占用的情况
Jun 11 Python
Flask Web开发入门之文件上传(八)
Aug 17 Python
Pandas统计重复的列里面的值方法
Jan 30 Python
Python利用sqlacodegen自动生成ORM实体类示例
Jun 04 Python
python循环输出三角形图案的例子
Nov 22 Python
Python如何把不同类型数据的json序列化
Apr 30 Python
Python的这些库,你知道多少?
Jun 09 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
无JS,完全php面向过程数据分页实现代码
2012/08/27 PHP
php二维数组排序方法(array_multisort usort)
2013/12/25 PHP
php中http与https跨域共享session的解决方法
2014/12/20 PHP
在视频前插入广告
2006/11/20 Javascript
LazyLoad 延迟加载(按需加载)
2010/05/31 Javascript
js常用代码段收集
2011/10/28 Javascript
js中符号转意问题示例探讨
2013/08/19 Javascript
js获取html文件的思路及示例
2013/09/17 Javascript
jquery特效 点击展示与隐藏全文
2015/12/09 Javascript
页面get请求 中文参数方法乱码问题的快速解决方法
2016/05/31 Javascript
json的结构与遍历方法实例分析
2017/04/25 Javascript
BootStrap selectpicker后台动态绑定数据的方法
2017/07/28 Javascript
JavaScript中数组常见操作技巧
2017/09/01 Javascript
Angular 开发学习之Angular CLI的安装使用
2017/12/31 Javascript
webstorm中vue语法的支持详解
2018/05/09 Javascript
Vue 幸运大转盘实现思路详解
2019/05/06 Javascript
Vue 实现复制功能,不需要任何结构内容直接复制方式
2019/11/09 Javascript
[08:54]《一刀刀一天》之DOTA全时刻18:十九支奔赴西雅图队伍全部出炉
2014/06/04 DOTA
[49:30]DOTA2-DPC中国联赛正赛 Dragon vs Dynasty BO3 第二场 3月4日
2021/03/11 DOTA
下载糗事百科的内容_python版
2008/12/07 Python
python中 ? : 三元表达式的使用介绍
2013/10/09 Python
11个并不被常用但对开发非常有帮助的Python库
2015/03/31 Python
将Django框架和遗留的Web应用集成的方法
2015/07/24 Python
Flask框架web开发之零基础入门
2018/12/10 Python
python字典的setdefault的巧妙用法
2019/08/07 Python
Pytorch DataLoader 变长数据处理方式
2020/01/08 Python
Python如何批量获取文件夹的大小并保存
2020/03/31 Python
芝加哥牛排公司:Chicago Steak Company
2018/10/31 全球购物
世界各地的当地人的食物体验:Eatwith
2019/07/26 全球购物
生产车间主任的个人自我鉴定
2013/10/25 职场文书
大学生怎样写好自荐信
2014/02/25 职场文书
无财产无子女离婚协议书范文
2014/09/14 职场文书
安全生产工作汇报材料
2014/10/28 职场文书
幼儿园秋季开学通知
2015/07/16 职场文书
Redis遍历所有key的两个命令(KEYS 和 SCAN)
2021/04/12 Redis