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 数据清洗之数据合并、转换、过滤、排序
Feb 12 Python
python里使用正则的findall函数的实例详解
Oct 19 Python
Python 数据处理库 pandas进阶教程
Apr 21 Python
解决Django的request.POST获取不到内容的问题
May 28 Python
Python操作mongodb数据库的方法详解
Dec 08 Python
python打包exe开机自动启动的实例(windows)
Jun 28 Python
10分钟教你用python动画演示深度优先算法搜寻逃出迷宫的路径
Aug 12 Python
感知器基础原理及python实现过程详解
Sep 30 Python
numpy数组做图片拼接的实现(concatenate、vstack、hstack)
Nov 08 Python
Tensorflow 自定义loss的情况下初始化部分变量方式
Jan 06 Python
如何在 Django 模板中输出 "{{"
Jan 24 Python
python 破解加密zip文件的密码
Apr 22 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
smarty模板引擎中自定义函数的方法
2015/01/22 PHP
PHP实现基于回溯法求解迷宫问题的方法详解
2017/08/17 PHP
PHP根据树的前序遍历和中序遍历构造树并输出后序遍历的方法
2017/11/10 PHP
PHP连接MySQL数据库的三种方式实例分析【mysql、mysqli、pdo】
2019/11/04 PHP
去除链接虚线全面分析总结
2006/08/15 Javascript
一个可以兼容IE FF的加为首页与加入收藏实现代码
2009/11/02 Javascript
来自国外的14个图片放大编辑的jQuery插件整理
2010/10/20 Javascript
js字符串的各种格式的转换 ToString,Format
2011/08/08 Javascript
JS获取键盘上任意按键的值(实例代码)
2013/11/12 Javascript
基于NodeJS的前后端分离的思考与实践(二)模版探索
2014/09/26 NodeJs
简易的投票系统以及js刷票思路和方法
2015/04/07 Javascript
Vue.js系列之项目搭建(1)
2017/01/03 Javascript
JS基于正则表达式实现的密码强度验证功能示例
2017/09/21 Javascript
Angular弹出模态框的两种方式
2017/10/19 Javascript
基于Vue和Element-Ui搭建项目的方法
2019/09/06 Javascript
vue中使用vue-print.js实现多页打印
2020/03/05 Javascript
javascript设计模式 ? 外观模式原理与用法实例分析
2020/04/15 Javascript
Vue时间轴 vue-light-timeline的用法说明
2020/10/29 Javascript
Python入门篇之正则表达式
2014/10/20 Python
python编写简单爬虫资料汇总
2016/03/22 Python
PyTorch上实现卷积神经网络CNN的方法
2018/04/28 Python
Win10下python3.5和python2.7环境变量配置教程
2018/09/18 Python
python+selenium实现自动化百度搜索关键词
2019/06/03 Python
Max&Co官网:意大利年轻女性时尚品牌
2017/05/16 全球购物
请问软件开发中的设计模式你会使用哪些
2015/05/13 面试题
幼师自荐信
2013/10/26 职场文书
大学理论知识学习自我鉴定
2014/04/28 职场文书
教师师德演讲稿
2014/05/06 职场文书
计生工作先进事迹
2014/08/15 职场文书
六年级学生评语大全
2014/12/26 职场文书
上市公司财务总监岗位职责
2015/04/03 职场文书
行政人事专员岗位职责
2015/04/07 职场文书
保姆聘用合同
2015/09/21 职场文书
追悼会家属答谢词
2015/09/29 职场文书
2016清明节森林防火广播稿
2015/12/17 职场文书
php去除deprecated的实例方法
2021/11/17 PHP