• xx: 公有变量
  • _x: 单前置下划线,私有化属性或方法,from somemodule import *禁止导入,类对象和子类可以访问
  • __xx:双前置下划线,避免与子类中的属性命名冲突,无法在外部直接访问(名字重整所以访问不到)
  • __xx__:双前后下划线,用户名字空间的魔法对象或属性。例如:__init__ , __ 不要自己发明这样的名字
  • xx_:单后置下划线,用于避免与Python关键词的冲突

通过name mangling(名字重整(目的就是以防子类意外重写基类的方法或者属性)如:_Class__object)机制就可以访问private了。

#coding=utf-8class Person(object):def __init__(self, name, age, taste):self.name = nameself._age = age self.__taste = tastedef showperson(self):print(self.name)print(self._age)print(self.__taste)def dowork(self):self._work()self.__away()def _work(self):print('my _work')def __away(self):print('my __away')class Student(Person):def construction(self, name, age, taste):self.name = nameself._age = age self.__taste = tastedef showstudent(self):print(self.name)print(self._age)print(self.__taste)@staticmethoddef testbug():_Bug.showbug()# 模块内可以访问,当from  cur_module import *时,不导入
class _Bug(object):@staticmethoddef showbug():print("showbug")s1 = Student('jack', 25, 'football')
s1.showperson()
print('*'*20)# 无法访问__taste,导致报错
# s1.showstudent()
s1.construction('rose', 30, 'basketball')
s1.showperson()
print('*'*20)s1.showstudent()
print('*'*20)Student.testbug()

总结

  • 父类中属性名为__名字的,子类不继承,子类不能访问
  • 如果在子类中向__名字赋值,那么会在子类中定义的一个与父类相同名字的属性
  • _名的变量、函数、类在使用from xxx import *时都不会被导入

传智播客 python 私有化学习笔记相关推荐

  1. 【传智播客】Libevent学习笔记(三):事件循环

    目录 00. 目录 01. event_base_loop函数 02. event_base_dispatch函数 03. event_base_loopexit函数 04. event_base_l ...

  2. 【传智播客】Libevent学习笔记(四):事件event

    目录 00. 目录 01. 事件概述 02. 创建事件 03. 事件的标志 04. 事件持久性 05. 超时事件 06. 信号事件 07. 设置不使用堆分配的事件 08. 事件的未决和非未决 09. ...

  3. 传智播客黑马Java学习笔记_day08_2

    设计模式:对问题行之有效的解决方式,一种思想,java24种 单例设计模式 解决问题:可以保证一个类的对象在内存中的唯一性 应用场景:多个程序使用同一个配置文件对象,就要保证配置文件的唯一性,配置文件 ...

  4. 【传智播客】Libevent学习笔记(一):简介和安装

    目录 00. 目录 01. libevent简介 02. Libevent的好处 03. Libevent的安装和测试 04. Libevent成功案例 00. 目录 @ 01. libevent简介 ...

  5. 传智播客黑马Java学习笔记_09

    在子类创建对象时,发现父类的构造方法也运行了,为什么呢? 在子类的构造函数中第一行有一个隐式语句super(); class Fu{Fu(){System.out.println("Fu i ...

  6. 传智播客黑马Java学习笔记_day05

    遍历数组 class Demo{public static void main(String args[]){int[] arry=new int[]{87,99,56};for(int x=0;x& ...

  7. 传智播客黑马Java学习笔记_day10_02

    对象的多态性 父类或者接口的引用指向子类对象 多态的好处 提高了代码的扩展性,前期的代码可以使用后期的内容 多态的弊端 前期的代码不能调用后期的特有内容 多态的前提 必须有关系:继承.实现 必须覆盖父 ...

  8. python传智播客王铭东_传智播客Python学科的王铭东老师讲的怎么样 |

    传智播客Python学科的王铭东老师讲的怎么样 | python高级编程 视频教程2020-09-20 16:40:21人已围观 python好学吗? Python相比于其程语言更容易学习,但是想学精 ...

  9. 传智播客 python_传智播客python视频教程下载

    传智播客python视频教程下载 Python 简介: Python 是一个高层次的结合了解释性.编译性.互动性和面向对象的脚本语言. Python 的设计具有很强的可读性,相比其他语言经常使用英文关 ...

  10. 传智python基础 就业_2017传智播客python基础班+就业班

    2017传智播客python基础班+就业班 本课程包含了Python的基础语法和核心编程,以及Python应用中流行的数据库.前端,Web框架,爬虫框架及其分布式策略等技术,包含了丰富的项目案例.适合 ...

最新文章

  1. python爬取图片-Python爬取网页中的图片(搜狗图片)详解
  2. 自然语言处理NLP-100例 | 第三篇:骚扰短信识别 MultinomialNB实现(内附源码)
  3. linux如何登陆oracle?如何停止、启动oracle和其监听?
  4. 49、剑指offer--把字符串转换成整数
  5. springboot报告如下一个异常
  6. Solidity API
  7. UVA 10596 Morning Walk
  8. Pytorch 编译cpp、cuda扩展遇到的问题
  9. html 上标下标 特殊字符等
  10. 发那科机器人圆弧指令怎么用_发那科机器人走弧线的指令是什么
  11. unity Audio 基础知识二 Audio Mixer
  12. python 实现维基百科六度分隔原理
  13. MATLAB 8.1 R2013a license.lic 问题
  14. AI Now:比人脸识别更可怕的黑科技---情绪识别
  15. C/S系统快速开发框架/winform快速开发框架源码(C#+SQL)
  16. Android 开发 VectorDrawable 矢量图 (三)矢量图动画
  17. IDE+Smalidea插件+Baksmali调试破解APK
  18. JAVA程序设计:破解保险箱(LeetCode:753)
  19. 【安装PyTorch报错】InvalidArchiveError(‘Error with archive D:\\anaconda\\pkgs\\pytorch-1.2.0-py3.6····
  20. 行业网站十年改变了什么 电商网 -《电子商务世界》打造电子商务大社区

热门文章

  1. 真人节目《通灵之战》的观后感
  2. python json函数_Json概述以及python对json的相关操作
  3. mysql infobright 缺点_Infobright存储引擎的特点
  4. python aes加密每次密码不一样_记AES加密在linux系统每次都不一样的问题
  5. verilog将像素数据写入txt_【测试工具】测试数据生成工具datafaker
  6. python 线程同步_python线程同步
  7. 销售订单(SO)-API-给已有的销售订单增加一行
  8. 用FTP命令实现自动下载和上载文件
  9. 自管理图形处理结构框架
  10. C++实现txt文件读到另一个txt文件,并替代其中默写特定字符