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实现
Jan 28 Python
详谈Python中列表list,元祖tuple和numpy中的array区别
Apr 18 Python
带你认识Django
Jan 15 Python
python opencv 图像拼接的实现方法
Jun 27 Python
python 利用浏览器 Cookie 模拟登录的用户访问知乎的方法
Jul 11 Python
Python使用pyautocad+openpyxl处理cad文件示例
Jul 11 Python
python 一篇文章搞懂装饰器所有用法(建议收藏)
Aug 23 Python
python脚本和网页有何区别
Jul 02 Python
pycharm如何设置官方中文(如何汉化)
Dec 29 Python
Python使用pyenv实现多环境管理
Feb 05 Python
python爬虫scrapy框架的梨视频案例解析
Feb 20 Python
基于Python实现对比Exce的工具
Apr 07 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三维数组去重(示例代码)
2013/11/26 PHP
Yii2实现增删改查后留在当前页的方法详解
2017/01/13 PHP
php的RSA加密解密算法原理与用法分析
2020/01/23 PHP
PHP快速导出百万级数据到CSV或者EXCEL文件
2020/11/27 PHP
统一接口:为FireFox添加IE的方法和属性的js代码
2007/03/25 Javascript
javascript网页关键字高亮代码
2008/07/30 Javascript
JQuery实现倒计时按钮的实现代码
2012/03/23 Javascript
JavaScript高级程序设计 阅读笔记(十八) js跨平台的事件
2012/08/14 Javascript
js 限制数字 js限制输入实现代码
2012/12/04 Javascript
详解JavaScript函数绑定
2013/08/18 Javascript
从QQ网站中提取的纯JS省市区三级联动菜单
2013/12/25 Javascript
javascript实现数字+字母验证码的简单实例
2014/02/10 Javascript
js中settimeout方法加参数
2014/02/28 Javascript
jquery 3D 标签云示例代码
2014/06/12 Javascript
JavaScript 经典实例日常收集整理(常用经典)
2016/03/30 Javascript
js获取客户端操作系统类型的方法【测试可用】
2016/05/27 Javascript
jQuery插件FusionCharts实现的2D面积图效果示例【附demo源码下载】
2017/03/06 Javascript
微信小程序canvas写字板效果及实例
2017/06/15 Javascript
vue组件实现文字居中对齐的方法
2017/08/23 Javascript
JS实现可针对算术表达式求值的计算器功能示例
2018/09/04 Javascript
vue element中axios下载文件(后端Python)
2019/05/10 Javascript
JavaScript静态作用域和动态作用域实例详解
2019/06/17 Javascript
layui的layedit富文本赋值方法
2019/09/18 Javascript
基于vue实现探探滑动组件功能
2020/05/29 Javascript
python anaconda 安装 环境变量 升级 以及特殊库安装的方法
2017/06/21 Python
Python搜索引擎实现原理和方法
2017/11/27 Python
Python3变量与基本数据类型用法实例分析
2020/02/14 Python
会计专业应届生求职信
2013/11/24 职场文书
城建学院毕业生自荐信
2014/01/31 职场文书
本科毕业生自荐信
2014/05/26 职场文书
党员教师自我剖析材料
2014/09/29 职场文书
二审代理词范文
2015/05/25 职场文书
开学第一天的感想
2015/08/10 职场文书
法律服务所工作总结
2015/08/10 职场文书
Python音乐爬虫完美绕过反爬
2021/08/30 Python
javascript进阶篇深拷贝实现的四种方式
2022/07/07 Javascript