Python面向对象程序设计之私有变量,私有方法原理与用法分析


Posted in Python onMarch 23, 2020

本文实例讲述了Python面向对象程序设计之私有变量,私有方法原理与用法。分享给大家供大家参考,具体如下:

私有变量,私有方法:

  • python的私有化是为了规划私有属性,避免非相关的访问【假如!我有老婆,你不能直接知道我老婆是谁,你只有问我才会知道,即我的私有属性只有我知道】
  • 在python中定义私有变量和私有方法只需要在变量名或函数名前加上 "__"两个下划线Python面向对象程序设计之私有变量,私有方法原理与用法分析
  • 在类内部的方法中使用时  self.__变量名或函数名。Python面向对象程序设计之私有变量,私有方法原理与用法分析
  • 实际上,如果真要访问私有变量和私有方法,也是可以访问的,因为实际上私有化的操作只是将变量或函数名更改了而已:
    • 下例中由private_value变为了_A__private_value【即_类名__属性名】,但为了保持私有性,不建议直接使用这种方法访问Python面向对象程序设计之私有变量,私有方法原理与用法分析
    class A:
      _private=6
      __private_value=5
      def __private_func(self):
        print("hello")
      def get_private_value(self):
        return self.__private_value
    a=A()
    # print(a.__private_value)###报错,找不到该属性
    print(a.get_private_value())
    print(a._A__private_value)
  • 私有化变量和方法的继承:【子类不会继承基类私有属性,但仍然通过基类的函数来获取或可以强行访问】

class A:
  _private=6
  __private_value=5
  def __private_func(self):
    print("hello")
  def get_private_value(self):
    return self.__private_value
class B(A):
  pass
b=B()
# print(b.__private_value)#报错
print(b.get_private_value())#可以使用父类的方法来获取私有属性
print(b._A__private_value)#强制访问还是可以的

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
删除目录下相同文件的python代码(逐级优化)
May 25 Python
在Python的Bottle框架中使用微信API的示例
Apr 23 Python
python实现读取命令行参数的方法
May 22 Python
Tensorflow卷积神经网络实例
May 24 Python
解决DataFrame排序sort的问题
Jun 07 Python
利用django-suit模板添加自定义的菜单、页面及设置访问权限
Jul 13 Python
Django之Mode的外键自关联和引用未定义的Model方法
Dec 15 Python
python orm 框架中sqlalchemy用法实例详解
Feb 02 Python
Python实现自动签到脚本功能
Aug 20 Python
python实现高效的遗传算法
Apr 07 Python
在python中实现导入一个需要传参的模块
May 12 Python
python spilt()分隔字符串的实现示例
May 21 Python
Python常用编译器原理及特点解析
Mar 23 #Python
Python3.7.0 Shell添加清屏快捷键的实现示例
Mar 23 #Python
Python面向对象程序设计之继承、多态原理与用法详解
Mar 23 #Python
python实现图像拼接功能
Mar 23 #Python
Python猴子补丁Monkey Patch用法实例解析
Mar 23 #Python
Python面向对象程序设计之静态方法、类方法、属性方法原理与用法分析
Mar 23 #Python
Python3 pickle对象串行化代码实例解析
Mar 23 #Python
You might like
动漫定律:眯眯眼都是怪物!这些角色狠话不多~
2020/03/03 日漫
php Notice: Undefined index 错误提示解决方法
2010/08/29 PHP
php将图片文件转换成二进制输出的方法
2015/06/10 PHP
php常用表单验证类用法实例
2015/06/18 PHP
Windows Server 2008 R2和2012中PHP连接MySQL过慢的解决方法
2016/07/02 PHP
PHP jQuery+Ajax结合写批量删除功能
2017/05/19 PHP
PHP使用 Pear 进行安装和卸载包的方法详解
2019/07/08 PHP
jquery 元素相对定位代码
2010/10/15 Javascript
jQuery bxCarousel实现图片滚动切换效果示例代码
2013/05/15 Javascript
js如何设置在iframe框架中指定div不显示
2013/12/04 Javascript
JS通过分析userAgent属性来判断浏览器的类型及版本
2014/03/28 Javascript
Javascript实现简单二级下拉菜单实例
2014/06/15 Javascript
js实现拖拽效果
2015/02/12 Javascript
js+cookies实现悬浮购物车的方法
2015/05/25 Javascript
JavaScript中计算网页中某个元素的位置
2015/06/10 Javascript
让图片跳跃起来  javascript图片轮播特效
2016/02/16 Javascript
jQuery插件datatables使用教程
2016/04/21 Javascript
基于javascript编写简单日历
2016/05/02 Javascript
JS实现兼容各种浏览器的获取选择文本的方法【测试可用】
2016/06/21 Javascript
详解nodejs中express搭建权限管理系统
2017/09/15 NodeJs
vue实现pdf文档在线预览功能
2019/11/26 Javascript
[43:48]Ti4正赛第一天 VG vs NEWBEE 2
2014/07/19 DOTA
[00:12]2018DOTA2亚洲邀请赛 sylar表现SOLO技艺
2018/04/06 DOTA
pycharm恢复默认设置或者是替换pycharm的解释器实例
2018/10/29 Python
在mac下查找python包存放路径site-packages的实现方法
2018/11/06 Python
python 实现GUI(图形用户界面)编程详解
2019/07/17 Python
python求平均数、方差、中位数的例子
2019/08/22 Python
python模拟实现斗地主发牌
2020/01/07 Python
基于python实现音乐播放器代码实例
2020/07/01 Python
浅析Python迭代器的高级用法
2020/07/16 Python
Html5百叶窗效果的示例代码
2017/12/11 HTML / CSS
学生夜不归宿检讨书
2014/09/23 职场文书
公司承诺函范文
2015/01/21 职场文书
2016大学自主招生推荐信范文
2015/03/23 职场文书
律师催款函范文
2015/06/24 职场文书
Python移位密码、仿射变换解密实例代码
2021/06/27 Python