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命令行参数解析OptionParser类用法实例
Oct 09 Python
Python中使用第三方库xlrd来读取Excel示例
Apr 05 Python
python生成验证码图片代码分享
Jan 28 Python
Python使用matplotlib绘制三维图形示例
Aug 25 Python
基于python实现学生管理系统
Oct 17 Python
浅谈python函数调用返回两个或多个变量的方法
Jan 23 Python
Python使用字典实现的简单记事本功能示例
Aug 15 Python
Django 框架模型操作入门教程
Nov 05 Python
python matplotlib如何给图中的点加标签
Nov 14 Python
Python模拟登录之滑块验证码的破解(实例代码)
Nov 18 Python
最新PyCharm 2020.2.3永久激活码(亲测有效)
Nov 26 Python
ASP.NET Core中的配置详解
Feb 05 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
建站常用13种PHP开源CMS比较
2009/08/23 PHP
php 上传功能实例代码
2010/04/13 PHP
PHP生成唯一订单号
2015/07/05 PHP
php抓取网站图片并保存的实现方法
2015/10/29 PHP
PHP解决中文乱码
2017/04/28 PHP
Laravel5.1 框架控制器基础用法实例分析
2020/01/04 PHP
prototype Element学习笔记(篇二)
2008/10/26 Javascript
js本身的局限性 别让javascript做太多事
2010/03/23 Javascript
JavaScript获取页面上某个元素的代码
2011/03/13 Javascript
js模拟点击以提交表单为例兼容主流浏览器
2013/11/29 Javascript
jQuery的DOM操作之删除节点示例
2014/01/03 Javascript
javascript实现2048游戏示例
2014/05/04 Javascript
解决checkbox的attr(checked)一直为undefined问题
2014/06/16 Javascript
javascript中Date对象的getDay方法使用指南
2014/12/22 Javascript
jquery append 动态添加的元素事件on 不起作用的解决方案
2015/07/30 Javascript
学习JavaScript设计模式(单例模式)
2015/11/26 Javascript
JavaScript面向对象之私有静态变量实例分析
2016/01/14 Javascript
Javascript实现倒计时(防页面刷新)实例
2016/12/13 Javascript
bootstrap导航条实现代码
2016/12/28 Javascript
jQuery实现web页面樱花坠落的特效
2017/06/01 jQuery
详解vue前后台数据交互vue-resource文档
2017/07/19 Javascript
ionic3实战教程之随机布局瀑布流的实现方法
2017/12/28 Javascript
详解ES6中的代理模式——Proxy
2018/01/08 Javascript
OkHttp踩坑随笔为何 response.body().string() 只能调用一次
2018/01/08 Javascript
详解NodeJs开发微信公众号
2018/05/25 NodeJs
angular 实时监听input框value值的变化触发函数方法
2018/08/31 Javascript
tensorflow 实现自定义layer并添加到计算图中
2020/02/04 Python
python安装第三方库如xlrd的方法
2020/10/31 Python
Diesel美国网上商店:意大利牛仔时装品牌
2020/12/10 全球购物
Structs界面控制层技术
2013/10/11 面试题
给分销商的致歉信
2014/01/14 职场文书
小加工厂管理制度
2014/01/21 职场文书
学习党的群众路线教育实践活动心得体会
2014/03/01 职场文书
公司授权委托书样本
2014/09/15 职场文书
python调试工具Birdseye的使用教程
2021/05/25 Python
Python Flask请求扩展与中间件相关知识总结
2021/06/11 Python