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 相关文章推荐
python将多个文本文件合并为一个文本的代码(便于搜索)
Mar 13 Python
Python自定义进程池实例分析【生产者、消费者模型问题】
Sep 19 Python
python中实现数组和列表读取一列的方法
Apr 03 Python
pycharm恢复默认设置或者是替换pycharm的解释器实例
Oct 29 Python
Python DataFrame一列拆成多列以及一行拆成多行
Aug 06 Python
python使用 request 发送表单数据操作示例
Sep 25 Python
python实现猜数字游戏
Mar 25 Python
使用Python实现牛顿法求极值
Feb 10 Python
简单了解pytest测试框架setup和tearDown
Apr 14 Python
基于Python编写一个计算器程序,实现简单的加减乘除和取余二元运算
Aug 05 Python
使用py-spy解决scrapy卡死的问题方法
Sep 29 Python
利用python调用摄像头的实例分析
Jun 07 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 清除网页病毒的方法
2008/12/05 PHP
PHP 危险函数解释 分析
2009/04/22 PHP
PHP配置把错误日志以邮件方式发送方法(Windows系统)
2015/06/23 PHP
用jquery生成二级菜单的实例代码
2013/06/24 Javascript
js监控IE火狐浏览器关闭、刷新、回退、前进事件
2014/07/23 Javascript
使用DeviceOne实现微信小程序功能
2016/12/29 Javascript
bootstarp modal框居中显示的实现代码
2017/02/18 Javascript
微信小程序 实现动态显示和隐藏某个控件
2017/04/27 Javascript
vue 自定义全局方法,在组件里面的使用介绍
2018/02/28 Javascript
浅谈mvvm-simple双向绑定简单实现
2018/04/18 Javascript
JS中注入eval, Function等系统函数截获动态代码
2019/04/03 Javascript
vue增加强缓存和版本号的实现方法
2019/05/01 Javascript
Python 基础之字符串string详解及实例
2017/04/01 Python
django之跨表查询及添加记录的示例代码
2018/10/16 Python
Python中对数组集进行按行打乱shuffle的方法
2018/11/08 Python
解决在pycharm中显示额外的 figure 窗口问题
2019/01/15 Python
对Django中的权限和分组管理实例讲解
2019/08/16 Python
python中open函数的基本用法示例
2019/09/07 Python
pandas 中对特征进行硬编码和onehot编码的实现
2019/12/20 Python
Tensorflow:转置函数 transpose的使用详解
2020/02/11 Python
Selenium常见异常解析及解决方案示范
2020/04/10 Python
matplotlib运行时配置(Runtime Configuration,rc)参数rcParams解析
2021/01/05 Python
利用css3 translate完美实现表头固定效果
2017/02/28 HTML / CSS
介绍一下#error预处理
2015/09/25 面试题
电气专业应届生求职信
2013/11/01 职场文书
中学家长会邀请函
2014/01/17 职场文书
幼儿园中班新学期寄语
2014/01/18 职场文书
高一新生军训方案
2014/05/12 职场文书
参赛口号
2014/06/16 职场文书
经济国贸专业求职信
2014/06/18 职场文书
我们的节日端午节活动总结
2015/02/11 职场文书
家装电话营销开场白
2015/05/29 职场文书
党员身份证明材料
2015/06/19 职场文书
汽车修理厂管理制度
2015/08/05 职场文书
浅谈Python项目的服务器部署
2021/04/25 Python
详解Go与PHP的语法对比
2021/05/29 PHP