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脚本操作文件的小示例分享
Aug 27 Python
Python正则表达式匹配中文用法示例
Jan 17 Python
Python 实现随机数详解及实例代码
Apr 15 Python
几种实用的pythonic语法实例代码
Feb 24 Python
Python实现通过继承覆盖方法示例
Jul 02 Python
OpenCV HSV颜色识别及HSV基本颜色分量范围
Mar 22 Python
python使用pymongo操作mongo的完整步骤
Apr 13 Python
Python闭包和装饰器用法实例详解
May 22 Python
Pytorch GPU显存充足却显示out of memory的解决方式
Jan 13 Python
Python reversed函数及使用方法解析
Mar 17 Python
如何用tempfile库创建python进程中的临时文件
Jan 28 Python
python实现发送邮件
Mar 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
ADODB结合SMARTY使用~超级强
2006/11/25 PHP
destoon后台网站设置变成空白的解决方法
2014/06/21 PHP
PHP使用Nginx实现反向代理
2017/09/20 PHP
深入研究PHP中的preg_replace和代码执行
2018/08/15 PHP
求解开jscript.encode代码的asp函数
2007/02/28 Javascript
jQuery获取(选中)单选,复选框,下拉框中的值
2014/02/21 Javascript
DOM 事件流详解
2015/01/20 Javascript
在JavaScript应用中实现延迟加载的方法
2015/06/25 Javascript
jquery实现的判断倒计时是否结束代码
2016/02/05 Javascript
JavaScript必知必会(九)function 说起 闭包问题
2016/06/08 Javascript
分享一个原生的JavaScript拖动方法
2016/09/25 Javascript
详解vuex 中的 state 在组件中如何监听
2017/05/23 Javascript
express框架实现基于Websocket建立的简易聊天室
2017/08/10 Javascript
深入研究jQuery图片懒加载 lazyload.js使用方法
2017/08/16 jQuery
jquery ajax异步提交表单数据的方法
2017/10/27 jQuery
在Vue中使用Compass的方法
2018/03/02 Javascript
用Fundebug插件记录网络请求异常的方法
2019/02/21 Javascript
微信小程序整合使用富文本编辑器的方法详解
2019/04/25 Javascript
详解用async/await来处理异步
2019/08/28 Javascript
9种方法优化jQuery代码详解
2020/02/04 jQuery
js对象简介与基本用法示例
2020/03/13 Javascript
Python基于回溯法子集树模板解决选排问题示例
2017/09/07 Python
python遍历一个目录,输出所有的文件名的实例
2018/04/23 Python
详解用python实现基本的学生管理系统(文件存储版)(python3)
2019/04/25 Python
django序列化serializers过程解析
2019/12/14 Python
pytorch对梯度进行可视化进行梯度检查教程
2020/02/04 Python
Python3开发实例之非关系型图数据库Neo4j安装方法及Python3连接操作Neo4j方法实例
2020/03/18 Python
Pycharm同步远程服务器调试的方法步骤
2020/11/04 Python
Django搭建项目实战与避坑细节详解
2020/12/06 Python
意大利在线购买隐形眼镜网站:VisionDirect.it
2019/03/18 全球购物
安德玛比利时官网:Under Armour比利时
2019/08/28 全球购物
自荐书范文范例
2014/02/13 职场文书
另类冲刺标语
2014/06/24 职场文书
幼儿园奖惩制度范本
2015/08/05 职场文书
css3中transform属性实现的4种功能
2021/08/07 HTML / CSS
Python装饰器详细介绍
2022/03/25 Python