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面向对象编程中的类和对象学习教程
Mar 30 Python
Windows下PyMongo下载及安装教程
Apr 27 Python
Python中unittest模块做UT(单元测试)使用实例
Jun 12 Python
Python使用Turtle模块绘制五星红旗代码示例
Dec 11 Python
浅谈Python实现2种文件复制的方法
Jan 19 Python
python3.6.3+opencv3.3.0实现动态人脸捕获
May 25 Python
python清除函数占用的内存方法
Jun 25 Python
python计算二维矩形IOU实例
Jan 18 Python
Spring @Enable模块驱动原理及使用实例
Jun 23 Python
Python基于pyjnius库实现访问java类
Jul 31 Python
Python filter()及reduce()函数使用方法解析
Sep 05 Python
如何用Python编写一个电子考勤系统
Feb 08 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
PHP5 的对象赋值机制介绍
2011/08/02 PHP
网站防止被刷票的一些思路与方法
2015/01/08 PHP
PHP文件缓存类示例分享
2015/01/30 PHP
PHP实现的防止跨站和xss攻击代码【来自阿里云】
2018/01/29 PHP
JQuery循环滚动图片代码
2011/12/08 Javascript
Jquery创建层显示标题和内容且随鼠标移动而移动
2014/01/26 Javascript
jQuery 顶部导航跟随滚动条滚动固定浮动在顶部
2014/06/06 Javascript
深入探密Javascript数组方法
2015/01/08 Javascript
基于jQuery实现返回顶部实例代码
2016/01/01 Javascript
jQuery弹层插件jquery.fancybox.js用法实例
2016/01/22 Javascript
canvas实现探照灯效果
2017/02/07 Javascript
Bootstrap媒体对象学习使用
2017/03/07 Javascript
Angular实现表单验证功能
2017/11/13 Javascript
web前端vue filter 过滤器
2018/01/12 Javascript
jQuery实现的淡入淡出图片轮播效果示例
2018/08/29 jQuery
百度小程序之间的页面通信过程详解
2019/07/18 Javascript
jQuery实现点击滚动到指定元素上的方法分析
2020/03/19 jQuery
jQuery使用jsonp实现百度搜索的示例代码
2020/07/08 jQuery
[48:26]VGJ.S vs infamous Supermajor 败者组 BO3 第二场 6.4
2018/06/05 DOTA
python下paramiko模块实现ssh连接登录Linux服务器
2015/06/03 Python
简单谈谈Python中函数的可变参数
2016/09/02 Python
django框架防止XSS注入的方法分析
2019/06/21 Python
Python集合基本概念与相关操作实例分析
2019/10/30 Python
python将邻接矩阵输出成图的实现
2019/11/21 Python
Python+numpy实现矩阵的行列扩展方式
2019/11/29 Python
jupyter 实现notebook中显示完整的行和列
2020/04/09 Python
纪伊国屋泰国网上书店:Kinokuniya泰国
2017/12/24 全球购物
购买美国制造的相框和画框架:Picture Frames
2018/08/14 全球购物
巴西网上药店:Drogaria Araujo
2021/01/06 全球购物
应届优秀本科大学毕业生自我鉴定
2014/01/21 职场文书
党支部书记岗位职责
2015/02/15 职场文书
幸福来敲门观后感
2015/06/04 职场文书
世界各国短波电台对东亚播送时间频率表(SW)
2021/06/28 无线电
python之django路由和视图案例教程
2021/07/26 Python
logback如何自定义日志存储
2021/08/30 Java/Android
疑《守望先锋2》A测截图泄露 或将推出新模式、新界面
2022/04/03 其他游戏