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的Django框架中调用方法和处理无效变量
Jul 15 Python
Python基于numpy灵活定义神经网络结构的方法
Aug 19 Python
Python的SimpleHTTPServer模块用处及使用方法简介
Jan 22 Python
解决python中使用plot画图,图不显示的问题
Jul 04 Python
python的concat等多种用法详解
Nov 28 Python
Python读取csv文件分隔符设置方法
Jan 14 Python
详解【python】str与json类型转换
Apr 29 Python
Python模块汇总(常用第三方库)
Oct 07 Python
Python:type、object、class与内置类型实例
Dec 25 Python
python thrift 实现 单端口多服务的过程
Jun 08 Python
python中线程和进程有何区别
Jun 17 Python
Python 删除List元素的三种方法remove、pop、del
Nov 16 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调用三种数据库的方法(2)
2006/10/09 PHP
apache+php+mysql安装配置方法小结
2010/08/01 PHP
JSQL 基于客户端的成绩统计实现方法
2010/05/05 Javascript
javascript伸缩菜单栏实现代码分享
2015/11/12 Javascript
JQuery中Ajax()的data参数类型实例分析
2015/12/15 Javascript
jQuery插件之jQuery.Form.js用法实例分析(附demo示例源码)
2016/01/04 Javascript
JS HTML5拖拽上传图片预览
2016/07/18 Javascript
jQuery动态创建元素以及追加节点的实现方法
2016/10/20 Javascript
JS实现颜色梯度与渐变效果完整实例
2016/12/30 Javascript
利用VUE框架,实现列表分页功能示例代码
2017/01/12 Javascript
VUE解决微信签名及SPA微信invalid signature问题(完美处理)
2019/03/29 Javascript
JS使用cookie保存用户登录信息操作示例
2019/05/30 Javascript
解决LayUI加上form.render()下拉框和单选以及复选框不出来的问题
2019/09/27 Javascript
javascript设计模式 ? 享元模式原理与用法实例分析
2020/04/15 Javascript
jQuery中event.target和this的区别详解
2020/08/13 jQuery
原生JavaScript实现贪吃蛇游戏
2020/11/04 Javascript
[01:03:13]VG vs Pain 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
python双向链表实现实例代码
2013/11/21 Python
Python常用的日期时间处理方法示例
2015/02/08 Python
Python实现简单HTML表格解析的方法
2015/06/15 Python
python查看微信好友是否删除自己
2016/12/19 Python
利用Python进行异常值分析实例代码
2017/12/07 Python
python dataframe常见操作方法:实现取行、列、切片、统计特征值
2018/06/09 Python
Python3爬虫学习之应对网站反爬虫机制的方法分析
2018/12/12 Python
Python面向对象程序设计构造函数和析构函数用法分析
2019/04/12 Python
加拿大建筑和装修专家:Reno-Depot
2017/12/21 全球购物
Book Depository美国:全球领先的专业网上书店之一
2019/08/14 全球购物
食品安全宣传标语
2014/06/07 职场文书
校运会口号
2014/06/18 职场文书
建筑施工安全责任书
2014/07/24 职场文书
活动总结新闻稿
2014/08/30 职场文书
党的群众路线查摆剖析材料
2014/10/10 职场文书
上课睡觉检讨书300字
2014/11/18 职场文书
乡镇法制宣传日活动总结
2015/05/05 职场文书
浅谈Redis的几个过期策略
2021/05/27 Redis
Redis缓存-序列化对象存储乱码问题的解决
2021/06/21 Redis