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计算方程式根的方法
May 07 Python
Python3.6正式版新特性预览
Dec 15 Python
Python 字典与字符串的互转实例
Jan 13 Python
Python实现图片拼接的代码
Jul 02 Python
python中matplotlib条件背景颜色的实现
Sep 02 Python
Python进程间通信 multiProcessing Queue队列实现详解
Sep 23 Python
python 3.74 运行import numpy as np 报错lib\site-packages\numpy\__init__.py
Oct 06 Python
python 非线性规划方式(scipy.optimize.minimize)
Feb 11 Python
Python 面向对象部分知识点小结
Mar 09 Python
pytorch读取图像数据转成opencv格式实例
Jun 02 Python
python判断元素是否存在的实例方法
Sep 24 Python
golang中的空接口使用详解
Mar 30 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
通过ODBC连接的SQL SERVER实例
2006/10/09 PHP
php 方便水印和缩略图的图形类
2009/05/21 PHP
PHP学习之整理字符串
2011/04/17 PHP
php函数重载的替代方法--伪重载详解
2015/05/08 PHP
清除网页历史记录,屏蔽后退按钮!
2008/12/22 Javascript
JavaScript 原型学习总结
2010/10/29 Javascript
window.location.hash 使用说明
2010/11/08 Javascript
JQuery动画和停止动画实例代码
2013/03/01 Javascript
juery框架写的弹窗效果适合新手
2013/11/27 Javascript
jquery实现的Accordion折叠面板效果代码
2015/09/02 Javascript
js编写贪吃蛇的小游戏
2020/08/24 Javascript
JavaScript实现下拉菜单的显示和隐藏
2016/01/05 Javascript
JavaScript中两个字符串的匹配
2016/06/08 Javascript
JS基于设计模式中的单例模式(Singleton)实现封装对数据增删改查功能
2018/02/06 Javascript
jQuery实现表单动态添加与删除数据操作示例
2018/07/03 jQuery
Angular通过指令动态添加组件问题
2018/07/09 Javascript
深入浅析Node.js 事件循环、定时器和process.nextTick()
2018/10/22 Javascript
详解promise.then,process.nextTick, setTimeout 以及 setImmediate的执行顺序
2018/11/21 Javascript
Vue 使用计时器实现跑马灯效果的实例代码
2019/07/11 Javascript
js实现旋转的星空效果
2019/11/01 Javascript
python中使用OpenCV进行人脸检测的例子
2014/04/18 Python
python制作websocket服务器实例分享
2016/11/20 Python
python 获取字符串MD5值方法
2018/05/29 Python
解决win64 Python下安装PIL出错问题(图解)
2018/09/03 Python
解决PySide+Python子线程更新UI线程的问题
2019/01/11 Python
Python元组知识点总结
2019/02/18 Python
python程序运行进程、使用时间、剩余时间显示功能的实现代码
2019/07/11 Python
在python中logger setlevel没有生效的解决
2020/02/21 Python
用CSS3实现Win8风格的方格导航菜单效果
2013/04/10 HTML / CSS
美国伊甸园兄弟种子公司:Eden Brothers
2018/07/01 全球购物
马来西亚在线健康商店:Medipal Malaysia
2020/04/13 全球购物
公务员爱岗敬业演讲稿
2014/08/26 职场文书
检讨书格式
2015/01/23 职场文书
工作调动申请报告
2015/05/18 职场文书
酒桌上的开场白
2015/06/01 职场文书
2019军训心得体会
2019/06/27 职场文书