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爬取网站数据保存使用的方法
Nov 20 Python
vc6编写python扩展的方法分享
Jan 17 Python
带你了解python装饰器
Jun 15 Python
100行python代码实现跳一跳辅助程序
Jan 15 Python
Python实现PS图像调整黑白效果示例
Jan 25 Python
基于python3 OpenCV3实现静态图片人脸识别
May 25 Python
python 求一个列表中所有元素的乘积实例
Jun 11 Python
python卸载后再次安装遇到的问题解决
Jul 10 Python
Python 私有化操作实例分析
Nov 21 Python
python3 BeautifulSoup模块使用字典的方法抓取a标签内的数据示例
Nov 28 Python
Python手绘可视化工具cutecharts使用实例
Dec 05 Python
Python for循环与getitem的关系详解
Jan 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
php使用filter过滤器验证邮箱 ipv6地址 url验证
2013/12/25 PHP
php计算title标题相似比的方法
2015/07/29 PHP
PHP连接数据库实现注册页面的增删改查操作
2016/03/27 PHP
PHP随机数 C扩展随机数
2016/05/04 PHP
PHP7.0连接DB操作实例分析【基于mysqli】
2019/09/26 PHP
PHP快速导出百万级数据到CSV或者EXCEL文件
2020/11/27 PHP
翻译整理的jQuery使用查询手册
2007/03/07 Javascript
扩展JS Date对象时间格式化功能的小例子
2013/12/02 Javascript
Ajax分页插件Pagination从前台jQuery到后端java总结
2016/07/22 Javascript
Javascript 6里的4个新语法
2016/08/25 Javascript
html5+canvas实现支持触屏的签名插件教程
2017/05/08 Javascript
浅谈angular2 组件的生命周期钩子
2017/08/12 Javascript
浅谈Vue 性能优化之深挖数组
2018/12/11 Javascript
今天,小程序正式支持 SVG
2019/04/20 Javascript
Vue 动态路由的实现及 Springsecurity 按钮级别的权限控制
2019/09/05 Javascript
JavaScript中的this原理及6种常见使用场景详解
2020/02/14 Javascript
jQuery 常用特效实例小结【显示与隐藏、淡入淡出、滑动、动画等】
2020/05/19 jQuery
vue引入静态js文件的方法
2020/06/20 Javascript
[07:57]DOTA2热力大趴狂欢夜 广州站活动回顾
2013/11/27 DOTA
Python实现的几个常用排序算法实例
2014/06/16 Python
Python内建函数之raw_input()与input()代码解析
2017/10/26 Python
python之virtualenv的简单使用方法(必看篇)
2017/11/25 Python
基于sklearn实现Bagging算法(python)
2019/07/11 Python
Django框架视图介绍与使用详解
2019/07/18 Python
python PIL和CV对 图片的读取,显示,裁剪,保存实现方法
2019/08/07 Python
Python3 中作为一等对象的函数解析
2019/12/11 Python
Pytest mark使用实例及原理解析
2020/02/22 Python
Django Xadmin多对多字段过滤实例
2020/04/07 Python
Kickers鞋英国官网:男士、女士和儿童鞋
2021/03/08 全球购物
大学生毕业自我鉴定范文
2013/11/03 职场文书
承诺书范本大全
2015/05/04 职场文书
初一军训感言
2015/08/01 职场文书
2016年党员承诺书范文
2016/03/24 职场文书
用Python创建简易网站图文教程
2021/06/11 Python
MongoDB orm框架的注意事项及简单使用
2021/06/20 MongoDB
MySQL学习之基础命令实操总结
2022/03/19 MySQL