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简单获取自身外网IP的方法
Sep 18 Python
python 环境变量和import模块导入方法(详解)
Jul 11 Python
python编辑用户登入界面的实现代码
Jul 16 Python
Django中的文件的上传的几种方式
Jul 23 Python
对pandas的算术运算和数据对齐实例详解
Dec 22 Python
在Django下测试与调试REST API的方法详解
Aug 29 Python
python+django+rest框架配置创建方法
Aug 31 Python
Python对Excel按列值筛选并拆分表格到多个文件的代码
Nov 05 Python
wxPython+Matplotlib绘制折线图表
Nov 19 Python
Python动态导入模块:__import__、importlib、动态导入的使用场景实例分析
Mar 30 Python
解决pymysql cursor.fetchall() 获取不到数据的问题
May 15 Python
java关于string最常出现的面试题整理
Jan 18 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
wordpress自定义url参数实现路由功能的代码示例
2013/11/28 PHP
PHPExcel读取EXCEL中的图片并保存到本地的方法
2015/02/14 PHP
php操作redis缓存方法分享
2015/06/03 PHP
php实现图片缩略图的方法
2016/03/29 PHP
swoole和websocket简单聊天室开发
2017/11/18 PHP
layui数据表格自定义每页条数limit设置
2019/10/26 PHP
JavaScript打字小游戏代码
2011/12/26 Javascript
Jquery EasyUI的添加,修改,删除,查询等基本操作介绍
2013/10/11 Javascript
基于BootStrap Metronic开发框架经验小结【五】Bootstrap File Input文件上传插件的用法详解
2016/05/12 Javascript
js操作DOM--添加、删除节点的简单实例
2016/07/08 Javascript
vue实现可增删查改的成绩单
2016/10/27 Javascript
详解vue中引入stylus及报错解决方法
2017/09/22 Javascript
vue生命周期与钩子函数简单示例
2019/03/13 Javascript
javascript验证form表单数据的案例详解
2019/03/25 Javascript
koa+jwt实现token验证与刷新功能
2019/05/30 Javascript
vue实现网络图片瀑布流 + 下拉刷新 + 上拉加载更多(步骤详解)
2020/01/14 Javascript
Vue 根据条件判断van-tab的显示方式
2020/08/03 Javascript
浅谈JavaScript 声明提升
2020/09/14 Javascript
jQuery实现购物车全功能
2021/01/11 jQuery
python实现对指定输入的字符串逆序输出的6种方法
2018/04/26 Python
python+selenium实现自动抢票功能实例代码
2018/11/23 Python
在Python 字典中一键对应多个值的实例
2019/02/03 Python
Python可迭代对象操作示例
2019/05/07 Python
python文件选择对话框的操作方法
2019/06/27 Python
关于Python内存分配时的小秘密分享
2019/09/05 Python
Python实现井字棋小游戏
2020/03/09 Python
Python 中的函数装饰器和闭包详解
2021/02/06 Python
HTML5 常用语法一览(列举不支持的属性)
2010/01/26 HTML / CSS
DIY手工制作经营店创业计划书
2014/02/01 职场文书
采购部长岗位职责
2014/06/13 职场文书
舞蹈兴趣小组活动总结
2014/07/07 职场文书
通信工程求职信
2014/07/16 职场文书
名人演讲稿范文
2014/09/16 职场文书
八年级英语教学计划
2015/01/23 职场文书
同意报考证明
2015/06/17 职场文书
python使用matplotlib绘制图片时x轴的刻度处理
2021/08/30 Python