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中使用百度音乐搜索的api下载指定歌曲的lrc歌词
Jul 18 Python
Python中list初始化方法示例
Sep 18 Python
Python使用正则表达式抓取网页图片的方法示例
Apr 21 Python
python通过getopt模块如何获取执行的命令参数详解
Dec 29 Python
Python基于win32ui模块创建弹出式菜单示例
May 09 Python
python如何求解两数的最大公约数
Sep 27 Python
Python3.5内置模块之time与datetime模块用法实例分析
Apr 27 Python
Python实现制度转换(货币,温度,长度)
Jul 14 Python
python函数修饰符@的使用方法解析
Sep 02 Python
基于python 等频分箱qcut问题的解决
Mar 03 Python
python定时截屏实现
Nov 02 Python
基于tensorflow权重文件的解读
May 26 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或asp创建网页桌面快捷方式的代码
2010/03/23 PHP
Yii调试查看执行SQL语句的方法
2016/07/15 PHP
php 人员权限管理(RBAC)实例(推荐)
2017/05/24 PHP
利用JQuery为搜索栏增加tag提示
2009/06/22 Javascript
Extjs中DisplayField的日期或者数字格式化扩展
2010/09/03 Javascript
JQuery实现用户名无刷新验证的小例子
2013/03/22 Javascript
几种延迟加载JS代码的方法加快网页的访问速度
2013/10/12 Javascript
jQuery()方法的第二个参数详解
2015/04/29 Javascript
如何解决谷歌浏览器下jquery无法获取图片的尺寸
2015/09/10 Javascript
基于JavaScript实现div层跟随滚动条滑动
2016/01/12 Javascript
JS使用setInterval实现的简单计时器功能示例
2018/04/19 Javascript
浅谈webpack-dev-server的配置和使用
2018/05/17 Javascript
Javascript 对象(object)合并操作实例分析
2019/07/30 Javascript
angularjs1.X 重构controller 的方法小结
2019/08/15 Javascript
原生JS与CSS实现软件卸载对话框功能
2019/12/05 Javascript
js this 绑定机制深入详解
2020/04/30 Javascript
[00:57]林俊杰助阵DOTA2亚洲邀请赛
2015/01/28 DOTA
[53:15]2018DOTA2亚洲邀请赛3月29日 小组赛A组 LGD VS TNC
2018/03/30 DOTA
[06:57]DOTA2-DPC中国联赛 正赛 Ehome vs PSG.LGD 选手采访
2021/03/11 DOTA
Python FTP两个文件夹间的同步实例代码
2018/05/25 Python
Flask模拟实现CSRF攻击的方法
2018/07/24 Python
Python使用lambda表达式对字典排序操作示例
2019/07/25 Python
处理python中多线程与多进程中的数据共享问题
2019/07/28 Python
python多环境切换及pyenv使用过程详解
2019/09/27 Python
numpy创建单位矩阵和对角矩阵的实例
2019/11/29 Python
简单总结CSS3中视窗单位Viewport的常见用法
2016/02/04 HTML / CSS
俄罗斯运动鞋商店:Sneakerhead
2018/05/10 全球购物
科室工作的个人自我评价
2013/10/30 职场文书
优秀员工演讲稿
2014/05/19 职场文书
红色故事演讲稿
2014/05/22 职场文书
淘宝店策划方案
2014/06/07 职场文书
租赁协议书
2015/01/27 职场文书
2015纪念九一八事变84周年演讲稿
2015/03/19 职场文书
圆明园纪录片观后感
2015/06/03 职场文书
于丹讲座视频观后感
2015/06/15 职场文书
mysql 生成连续日期及变量赋值
2022/03/20 MySQL