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实现递归版汉诺塔示例(汉诺塔递归算法)
Apr 08 Python
Python的re模块正则表达式操作
May 25 Python
Python构建XML树结构的方法示例
Jun 30 Python
Python实现破解12306图片验证码的方法分析
Dec 29 Python
解决python3 json数据包含中文的读写问题
May 10 Python
Windows下PyCharm安装图文教程
Aug 27 Python
python适合人工智能的理由和优势
Jun 28 Python
Python socket 套接字实现通信详解
Aug 27 Python
python 求10个数的平均数实例
Dec 16 Python
Flask 上传自定义头像的实例详解
Jan 09 Python
K最近邻算法(KNN)---sklearn+python实现方式
Feb 24 Python
python3 字符串str和bytes相互转换
Mar 23 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用substr函数截取字符串中的某部分
2016/12/03 PHP
javascript显示选择目录对话框的代码
2008/11/10 Javascript
jQuery 判断页面元素是否存在的代码
2009/08/14 Javascript
通过隐藏option实现select的联动效果
2009/11/10 Javascript
两种WEB下的模态对话框 (asp.net或js的分别实现)
2009/12/02 Javascript
Easy.Ajax 部分源代码 支持文件上传功能, 兼容所有主流浏览器
2011/02/24 Javascript
jQuery1.6 类型判断实现代码
2011/09/01 Javascript
jquery mobile动态添加元素之后不能正确渲染解决方法说明
2014/03/05 Javascript
jquery.cookie.js使用指南
2015/01/05 Javascript
通过BootStrap实现轮播图的实际应用
2016/09/26 Javascript
JavaScript之cookie技术详解
2016/11/18 Javascript
JavaScript之filter_动力节点Java学院整理
2017/06/28 Javascript
vue实现分页组件
2020/06/16 Javascript
js的继承方法小结(prototype、call、apply)(推荐)
2019/04/17 Javascript
JS实现滚动条触底加载更多
2019/09/19 Javascript
判断JavaScript中的两个变量是否相等的操作符
2019/12/21 Javascript
webpack 如何同时输出压缩和未压缩的文件的实现步骤
2020/06/05 Javascript
CentOS 8.2服务器上安装最新版Node.js的方法
2020/12/16 Javascript
[01:13:17]Secret vs NB 2018国际邀请赛小组赛BO2 第二场 8.19
2018/08/21 DOTA
Python操作MySQL数据库9个实用实例
2015/12/11 Python
Python中多线程的创建及基本调用方法
2016/07/08 Python
基于python log取对数详解
2018/06/08 Python
python批量修改图片大小的方法
2018/07/24 Python
Django csrf 验证问题的实现
2018/10/09 Python
详解Python装饰器
2019/03/25 Python
使用Python的Turtle绘制哆啦A梦实例
2019/11/21 Python
Django多进程滚动日志问题解决方案
2019/12/17 Python
STAUD官方网站:洛杉矶独有的闲适风格
2019/04/11 全球购物
英国外籍人士的在线超市:British Corner Shop
2019/06/03 全球购物
结婚典礼证婚词
2014/01/08 职场文书
违反工作纪律检讨书
2014/02/15 职场文书
班级寄语大全
2014/04/10 职场文书
世博会口号
2014/06/20 职场文书
2015年社区平安建设工作总结
2015/05/13 职场文书
2015大学生入党个人自传
2015/06/26 职场文书
Django开发RESTful API实现增删改查(入门级)
2021/05/10 Python