Python的封装机制是把变量名字改掉,在类外还是可以访问的。下面例子的注释部分演示了如何在类外破坏封装性访问私有和保护变量,未注释部分则演示了保护变量和私有变量在子类调用的结果。

class A:_弱私有变量 = None   # protected__强私有变量 = None  # privatedef __init__(self, a, b):self._弱私有变量 = aself.__强私有变量 = bdef _弱私有函数(self):print("调用了_弱私有函数")def __强私有函数(self):print("调用了__强私有函数")def show(self):print("弱私有变量 = {0}".format(self._弱私有变量))print("强私有变量 = {0}".format(self.__强私有变量))class B(A):def __init__(self):super().__init__(1, 2)def show(self):print(self._弱私有变量) # protected 变量可访问# print(self.__强私有变量) # A类的私有变量,不可访问if __name__ == '__main__':# a = A(100, 200)# print("弱私有变量 = {0}".format(a._弱私有变量))# print("强私有变量 = {0}".format(a._A__强私有变量))# a._弱私有函数()# a._A__强私有函数()# a.show()b = B()b.show()

python的protected和private相关推荐

  1. 【C++】多态问题:基类调用子类的protected或者private函数

    1.问题描述 如果在基类中虚函数是public,子类中重载时标记为protected或者private函数,是否还能访问这个函数? 答案是: 基类指针指向子类时,可以访问,并且访问的是子类重载后的函数 ...

  2. 深入理解C++中public、protected及private用法

    深入理解C++中public.protected及private用法 这篇文章主要介绍了C++中public.protected及private用法,对于C++面向对象程序设计来说是非常重要的概念,需 ...

  3. C++中public、protected、private的差别

    第一: private,public,protected的訪问范围:   private: 仅仅能由该类中的函数.其友元函数訪问,不能被不论什么其它訪问.该类的对象也不能訪问. protected: ...

  4. 类中的关键字public、protected、private究竟是什么意思?

    类中的关键字public.protected.private究竟是什么意思? 这三个关键字用来修饰类中的成员的有效域,即成员在哪个域内是可被调用的.下面我们来仔细说明这句话. 所谓"类中的成 ...

  5. C++中public,protected,private访问范围和用法

    今天本文就来十分分析一下C++中public,protected,private它们在继承中表示的一些访问范围和用法.这里我们首先要明白下面几点. 1.类的一个特征就是封装,public和privat ...

  6. C++中public、protected及private用法

    转自:http://www.jb51.net/article/54224.htm 初学C++的朋友经常在类中看到public,protected,private以及它们在继承中表示的一些访问范围,很容 ...

  7. C++ public、protected、private区别

    2018-02-09 创建人:Ruo_Xiao 邮箱:xclsoftware@163.com 一.封装 public 其成员是类与类外的接口,其对象可以访问. protected 只能是类内(自己)以 ...

  8. C++学习笔记:(六)public、protected、private继承详解

    前言 上一篇学习了继承的基础概念以及示例代码.算是对继承有了一个简单的了解.如果想要对继承有更深的了解,就要复习访问权限的知识点.这样才能深化对继承的了解,以及学习不同的继承方式能对哪些数据进行操作. ...

  9. C++中的三种继承public,protected,private(转)

    三种访问权限 public:可以被任意实体访问 protected:只允许子类及本类的成员函数访问 private:只允许本类的成员函数访问 三种继承方式 public 继承 protect 继承 p ...

最新文章

  1. 如何用虚幻引擎4和C++开发游戏?斯坦福相关课程上线
  2. 深度学习(二)theano学习笔记(1)环境搭建
  3. coco关键点标注json_COCO 数据集中目标检测标注说明
  4. tkinter中button按钮控件(三)
  5. 随便聊一些编程开发工具
  6. 使用Camel从WildFly 8向WebLogic 12发送JMS消息
  7. Install VMware tools 解决(物理主机WIN7X64和VM下的REHAT LINUX AS4共享文件)
  8. 加载程序中数据库账号密码加密策略wallet_04
  9. 炫酷科技感超前的电子产品发布广告海报psd分层模板,带给你炫酷的未来感
  10. 题解 P2146 【[NOI2015]软件包管理器】
  11. 从Rust到远方:C星系
  12. 【CPLEX教程01】Cplex介绍,下载和安装Cplex
  13. 杨中科:【我的大学生活】
  14. 计算机无法添加本地策略组,解决win10找不到本地组策略和本地用户的方法
  15. Linux系统下如何复制粘贴文件(待更新)
  16. 李清照《声声慢》欣赏(转载)
  17. html文字溢出怎样处理,css文本溢出处理
  18. Android Bluetooth蓝牙scan过程
  19. WebDriver下载地址
  20. 手把手教你 win10 安装Paddlepaddle-GPU

热门文章

  1. sae mysql django_Django中MySQL读写分离技术
  2. ML:文本、图像等数值化数据相似度计算之余弦相似度计算三种python代码实现
  3. ML:基于自定义数据集利用Logistic、梯度下降算法GD、LoR逻辑回归、Perceptron感知器、SVM支持向量机、LDA线性判别分析算法进行二分类预测(决策边界可视化)
  4. NLP:LSTM之父眼中的深度学习十年简史《The 2010s: Our Decade of Deep Learning / Outlook on the 2020s》的参考文献
  5. spring MVC配置详解
  6. vs编译慢原因和解决方法
  7. Javascript获取url参数值
  8. Anaconda闪退问题
  9. STM32F103CB 芯片FLASH DOWNLOAD编程地址范围设置相关问题记录
  10. C++:构造函数2——拷贝构造函数