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写个自动SSH登录远程服务器的小工具(实例)
Jun 17 Python
Python实现1-9数组形成的结果为100的所有运算式的示例
Nov 03 Python
使用Python进行AES加密和解密的示例代码
Feb 02 Python
Python读取txt内容写入xls格式excel中的方法
Oct 11 Python
在python里从协程返回一个值的示例
Feb 19 Python
详解Python使用Plotly绘图工具,绘制甘特图
Apr 02 Python
Python 复平面绘图实例
Nov 21 Python
PyQT5 emit 和 connect的用法详解
Dec 13 Python
详解Python中的分支和循环结构
Feb 11 Python
python+selenium+chrome实现淘宝购物车秒杀自动结算
Jan 07 Python
用python批量移动文件
Jan 14 Python
python3读取文件指定行的三种方法
May 24 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
海河写的 Discuz论坛帖子调用js的php代码
2007/08/23 PHP
PHP中strcmp()和strcasecmp()函数字符串比较用法分析
2016/01/07 PHP
ThinkPHP实现简单登陆功能
2017/04/28 PHP
php+redis实现消息队列功能示例
2019/09/19 PHP
javascript TextArea动态显示剩余字符
2008/10/22 Javascript
jQuery 位置插件
2008/12/25 Javascript
详细讲解JS节点知识
2010/01/31 Javascript
JQuery与JSon实现的无刷新分页代码
2011/09/13 Javascript
javascript原生和jquery库实现iframe自适应高度和宽度
2014/07/18 Javascript
angularJS 指令封装回到顶部示例详解
2017/01/22 Javascript
理解 Node.js 事件驱动机制的原理
2017/08/16 Javascript
浅谈JS中的反柯里化( uncurrying)
2017/08/17 Javascript
微信小程序实现红包功能(后端PHP实现逻辑)
2018/07/11 Javascript
微信小程序实现带参数的分享功能(两种方法)
2019/05/17 Javascript
解决Vue打包上线之后部分CSS不生效的问题
2019/11/12 Javascript
JavaScript使用百度ECharts插件绘制饼图操作示例
2019/11/26 Javascript
JS实现吸顶特效
2020/01/08 Javascript
实例讲解Python中的私有属性
2014/08/21 Python
Python中实现两个字典(dict)合并的方法
2014/09/23 Python
浅谈function(函数)中的动态参数
2017/04/30 Python
python+opencv实现动态物体识别
2018/01/09 Python
python 利用栈和队列模拟递归的过程
2018/05/29 Python
python print输出延时,让其立刻输出的方法
2019/01/07 Python
Python中使用遍历在列表中添加字典遇到的坑
2019/02/27 Python
python交易记录链的实现过程详解
2019/07/03 Python
python 实现Flask中返回图片流给前端展示
2020/01/09 Python
如何利用Python动态模拟太阳系运转
2020/09/04 Python
用python写PDF转换器的实现
2020/10/29 Python
pytorch Dataset,DataLoader产生自定义的训练数据案例
2021/03/03 Python
用HTML5 实现橡皮擦的涂抹效果的教程
2015/05/11 HTML / CSS
amazeui模态框弹出后立马消失并刷新页面
2020/08/19 HTML / CSS
行政总监岗位职责
2013/12/05 职场文书
教师个人的自我评价分享
2014/01/02 职场文书
会计辞职信范文
2014/01/15 职场文书
个人授权委托书
2014/04/03 职场文书
2015年生活老师工作总结
2015/05/27 职场文书