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 相关文章推荐
操作Windows注册表的简单的Python程序制作教程
Apr 07 Python
Python yield 使用方法浅析
May 20 Python
Python基于Logistic回归建模计算某银行在降低贷款拖欠率的数据示例
Jan 23 Python
python笔记_将循环内容在一行输出的方法
Aug 08 Python
Python selenium 自动化脚本打包成一个exe文件(推荐)
Jan 14 Python
python 解决tqdm模块不能单行显示的问题
Feb 19 Python
python logging设置level失败的解决方法
Feb 19 Python
深度学习入门之Pytorch 数据增强的实现
Feb 26 Python
python实现录屏功能(亲测好用)
Mar 02 Python
在django中使用post方法时,需要增加csrftoken的例子
Mar 13 Python
Pytorch生成随机数Tensor的方法汇总
Sep 09 Python
python3 googletrans超时报错问题及翻译工具优化方案 附源码
Dec 23 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
随机广告显示(PHP函数)
2006/10/09 PHP
构建简单的Webmail系统
2006/10/09 PHP
Linux下进行MYSQL编程时插入中文乱码的解决方案
2007/03/15 PHP
PHP模块 Memcached功能多于Memcache
2011/06/14 PHP
Win10 下安装配置IIS + MySQL + nginx + php7.1.7
2017/08/04 PHP
PHP排序算法之堆排序(Heap Sort)实例详解
2018/04/21 PHP
javascript函数库-集合框架
2007/04/27 Javascript
初学js插入节点appendChild insertBefore使用方法
2011/07/04 Javascript
最短的javascript:地址栏载入脚本代码
2011/10/13 Javascript
jquery垂直公告滚动实现代码
2013/12/08 Javascript
JavaScript中数组成员的添加、删除介绍
2014/12/30 Javascript
node.js下LDAP查询实例分享
2015/09/30 Javascript
原生js实现可爱糖果数字时间特效
2016/12/30 Javascript
基于javaScript的this指向总结
2017/07/22 Javascript
cocos creator Touch事件应用(触控选择多个子节点的实例)
2017/09/10 Javascript
bootstrap下拉框动态赋值方法
2018/08/10 Javascript
vue使用微信JS-SDK实现分享功能
2019/08/23 Javascript
JS常用排序方法实例代码解析
2020/03/03 Javascript
微信小程序获取当前时间及星期几的实例代码
2020/09/20 Javascript
openlayers实现图标拖动获取坐标
2020/09/25 Javascript
JavaScript 防抖和节流遇见的奇怪问题及解决
2020/11/20 Javascript
Python加pyGame实现的简单拼图游戏实例
2015/05/15 Python
Python+OpenCV目标跟踪实现基本的运动检测
2018/07/10 Python
详解python tkinter教程-事件绑定
2019/03/28 Python
使用Django搭建web服务器的例子(最最正确的方式)
2019/08/29 Python
python 制作磁力搜索工具
2021/03/04 Python
CSS3 中的@keyframes介绍
2014/09/02 HTML / CSS
萨克斯第五大道英国:Saks Fifth Avenue英国
2019/04/01 全球购物
家长评语大全
2014/01/22 职场文书
一名老师的自我评价
2014/02/07 职场文书
环保建议书400字
2014/05/14 职场文书
学校节能减排倡议书
2014/05/16 职场文书
群众路线党员个人整改措施
2014/10/27 职场文书
产品调价通知函
2015/04/20 职场文书
房产电话营销开场白
2015/05/29 职场文书
汉语拼音教学反思
2016/02/22 职场文书