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 提取文件的小程序
Jul 29 Python
基于进程内通讯的python聊天室实现方法
Jun 28 Python
Python入门学习之字符串与比较运算符
Oct 12 Python
对python数据切割归并算法的实例讲解
Dec 12 Python
Python3实现获取图片文字里中文的方法分析
Dec 13 Python
Python高斯消除矩阵
Jan 02 Python
Django框架 Pagination分页实现代码实例
Sep 04 Python
django框架forms组件用法实例详解
Dec 10 Python
双向RNN:bidirectional_dynamic_rnn()函数的使用详解
Jan 20 Python
django列表筛选功能的实现代码
Mar 27 Python
Python用5行代码实现批量抠图的示例代码
Apr 14 Python
python的列表生成式,生成器和generator对象你了解吗
Mar 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设计模式之委托模式
2016/02/13 PHP
SUN的《AJAX与J2EE》全文译了
2007/02/23 Javascript
Dom加载让图片加载完再执行的脚本代码
2008/05/15 Javascript
javascript 鼠标悬浮图片显示原图 移出鼠标后原图消失(多图)
2009/12/28 Javascript
基于Jquery的文字自动截取(提供源代码)
2011/08/09 Javascript
JavaScript forEach()遍历函数使用及介绍
2015/07/08 Javascript
JS特效实现图片自动播放并可控的效果
2015/07/31 Javascript
Node.js文件操作方法汇总
2016/03/22 Javascript
jQuery实现定位滚动条位置
2016/08/05 Javascript
Vue.js基础学习之class与样式绑定
2017/03/20 Javascript
jQuery实现的鼠标滚轮控制图片缩放功能实例
2017/10/14 jQuery
微信小程序返回多级页面的实现方法
2017/10/27 Javascript
Vue中使用create-keyframe-animation与动画钩子完成复杂动画
2019/04/09 Javascript
ant-design-vue中tree增删改的操作方法
2020/11/03 Javascript
[01:04:14]OG vs Winstrike 2018国际邀请赛小组赛BO2 第二场 8.19
2018/08/21 DOTA
浅谈五大Python Web框架
2017/03/20 Python
Python中staticmethod和classmethod的作用与区别
2018/10/11 Python
Python 给某个文件名添加时间戳的方法
2018/10/16 Python
python+unittest+requests实现接口自动化的方法
2018/11/29 Python
python处理DICOM并计算三维模型体积
2019/02/26 Python
Python编程学习之如何判断3个数的大小
2019/08/07 Python
pytorch使用tensorboardX进行loss可视化实例
2020/02/24 Python
Python爬虫基于lxml解决数据编码乱码问题
2020/07/31 Python
一文带你掌握Pyecharts地理数据可视化的方法
2021/02/06 Python
html2canvas把div保存图片高清图的方法示例
2018/03/05 HTML / CSS
BRASTY捷克:购买香水、化妆品、手袋和手表
2017/07/12 全球购物
中国汽车租赁行业头部企业:一嗨租车
2019/05/16 全球购物
在C++ 程序中调用被C 编译器编译后的函数,为什么要加extern "C"
2014/08/09 面试题
解释DataSet(ds) 和 ds as DataSet 的含义
2014/07/27 面试题
经贸日语专业个人求职信
2013/12/13 职场文书
环保倡议书300字
2014/05/15 职场文书
十佳文明家庭事迹
2014/05/25 职场文书
2014乡镇党政班子四风问题思想汇报
2014/09/14 职场文书
Html5通过数据流方式播放视频的实现
2021/04/27 HTML / CSS
聊聊Python中关于a=[[]]*3的反思
2021/06/02 Python
代码复现python目标检测yolo3详解预测
2022/05/06 Python