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 相关文章推荐
win10系统中安装scrapy-1.1
Jul 03 Python
Python中取整的几种方法小结
Jan 06 Python
Python实现冒泡排序的简单应用示例
Dec 11 Python
Python中使用支持向量机SVM实践
Dec 27 Python
python 使用值来排序一个字典的方法
Nov 16 Python
使用python进行拆分大文件的方法
Dec 10 Python
python执行CMD指令,并获取返回的方法
Dec 19 Python
OpenCV HSV颜色识别及HSV基本颜色分量范围
Mar 22 Python
一文秒懂python读写csv xml json文件各种骚操作
Jul 04 Python
YUV转为jpg图像的实现
Dec 09 Python
Python hashlib常见摘要算法详解
Jan 13 Python
上帝为你开了一扇窗之Tkinter常用函数详解
Jun 02 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中strtotime函数用法详解
2014/11/15 PHP
php redis实现对200w用户的即时推送
2017/03/04 PHP
MAC下通过改apache配置文件切换php多版本的方法
2017/04/26 PHP
Laravel 框架返回状态拦截代码
2019/10/18 PHP
基本jquery的控制tabs打开的数量的代码
2010/10/17 Javascript
ie6下png图片背景不透明的解决办法使用js实现
2013/01/11 Javascript
js解析与序列化json数据(二)序列化探讨
2013/02/01 Javascript
NodeJS学习笔记之Connect中间件模块(一)
2015/01/27 NodeJs
jquery使用slideDown实现模块缓慢拉出效果的方法
2015/03/27 Javascript
js实现select跳转菜单新窗口效果代码分享(超简单)
2015/08/21 Javascript
JS实现DIV容器赋值的方法
2015/12/14 Javascript
AngularJS 基础ng-class-even指令用法
2016/08/01 Javascript
Angularjs在初始化未完毕时出现闪烁问题的解决方法分析
2016/08/05 Javascript
Angular2-primeNG文件上传模块FileUpload使用详解
2017/01/14 Javascript
微信小程序左滑删除功能开发案例详解
2018/11/12 Javascript
微信小程序 数据缓存实现方法详解
2019/08/26 Javascript
Vue CLI项目 axios模块前后端交互的使用(类似ajax提交)
2019/09/01 Javascript
js实现简单掷骰子小游戏
2019/10/24 Javascript
JavaScript arguments.callee作用及替换方案详解
2020/09/02 Javascript
js 实现碰撞检测的示例
2020/10/28 Javascript
利用Python求阴影部分的面积实例代码
2018/12/05 Python
python多进程读图提取特征存npy
2019/05/21 Python
Python3标准库之dbm UNIX键-值数据库问题
2020/03/24 Python
聊聊python中的循环遍历
2020/09/07 Python
Easy Spirit官网:美国休闲鞋履中的代表品牌
2019/04/12 全球购物
How TDD works
2012/09/30 面试题
店长岗位职责
2013/11/21 职场文书
鸿星尔克广告词
2014/03/21 职场文书
中文专业求职信
2014/06/20 职场文书
敬业奉献模范事迹材料
2014/12/24 职场文书
村干部任职承诺书
2015/01/21 职场文书
听证会主持词
2015/07/03 职场文书
一年级语文教学随笔
2015/08/14 职场文书
2019个人年度目标制定攻略!
2019/07/12 职场文书
读《推着妈妈去旅行》有感1500字
2019/10/15 职场文书
使用Docker容器部署rocketmq单机的全过程
2022/04/03 Servers