传智播客 python 私有化学习笔记
- 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 私有化学习笔记相关推荐
- 【传智播客】Libevent学习笔记(三):事件循环
目录 00. 目录 01. event_base_loop函数 02. event_base_dispatch函数 03. event_base_loopexit函数 04. event_base_l ...
- 【传智播客】Libevent学习笔记(四):事件event
目录 00. 目录 01. 事件概述 02. 创建事件 03. 事件的标志 04. 事件持久性 05. 超时事件 06. 信号事件 07. 设置不使用堆分配的事件 08. 事件的未决和非未决 09. ...
- 传智播客黑马Java学习笔记_day08_2
设计模式:对问题行之有效的解决方式,一种思想,java24种 单例设计模式 解决问题:可以保证一个类的对象在内存中的唯一性 应用场景:多个程序使用同一个配置文件对象,就要保证配置文件的唯一性,配置文件 ...
- 【传智播客】Libevent学习笔记(一):简介和安装
目录 00. 目录 01. libevent简介 02. Libevent的好处 03. Libevent的安装和测试 04. Libevent成功案例 00. 目录 @ 01. libevent简介 ...
- 传智播客黑马Java学习笔记_09
在子类创建对象时,发现父类的构造方法也运行了,为什么呢? 在子类的构造函数中第一行有一个隐式语句super(); class Fu{Fu(){System.out.println("Fu i ...
- 传智播客黑马Java学习笔记_day05
遍历数组 class Demo{public static void main(String args[]){int[] arry=new int[]{87,99,56};for(int x=0;x& ...
- 传智播客黑马Java学习笔记_day10_02
对象的多态性 父类或者接口的引用指向子类对象 多态的好处 提高了代码的扩展性,前期的代码可以使用后期的内容 多态的弊端 前期的代码不能调用后期的特有内容 多态的前提 必须有关系:继承.实现 必须覆盖父 ...
- python传智播客王铭东_传智播客Python学科的王铭东老师讲的怎么样 |
传智播客Python学科的王铭东老师讲的怎么样 | python高级编程 视频教程2020-09-20 16:40:21人已围观 python好学吗? Python相比于其程语言更容易学习,但是想学精 ...
- 传智播客 python_传智播客python视频教程下载
传智播客python视频教程下载 Python 简介: Python 是一个高层次的结合了解释性.编译性.互动性和面向对象的脚本语言. Python 的设计具有很强的可读性,相比其他语言经常使用英文关 ...
- 传智python基础 就业_2017传智播客python基础班+就业班
2017传智播客python基础班+就业班 本课程包含了Python的基础语法和核心编程,以及Python应用中流行的数据库.前端,Web框架,爬虫框架及其分布式策略等技术,包含了丰富的项目案例.适合 ...
最新文章
- python爬取图片-Python爬取网页中的图片(搜狗图片)详解
- 自然语言处理NLP-100例 | 第三篇:骚扰短信识别 MultinomialNB实现(内附源码)
- linux如何登陆oracle?如何停止、启动oracle和其监听?
- 49、剑指offer--把字符串转换成整数
- springboot报告如下一个异常
- Solidity API
- UVA 10596 Morning Walk
- Pytorch 编译cpp、cuda扩展遇到的问题
- html 上标下标 特殊字符等
- 发那科机器人圆弧指令怎么用_发那科机器人走弧线的指令是什么
- unity Audio 基础知识二 Audio Mixer
- python 实现维基百科六度分隔原理
- MATLAB 8.1 R2013a license.lic 问题
- AI Now:比人脸识别更可怕的黑科技---情绪识别
- C/S系统快速开发框架/winform快速开发框架源码(C#+SQL)
- Android 开发 VectorDrawable 矢量图 (三)矢量图动画
- IDE+Smalidea插件+Baksmali调试破解APK
- JAVA程序设计:破解保险箱(LeetCode:753)
- 【安装PyTorch报错】InvalidArchiveError(‘Error with archive D:\\anaconda\\pkgs\\pytorch-1.2.0-py3.6····
- 行业网站十年改变了什么 电商网 -《电子商务世界》打造电子商务大社区
热门文章
- 真人节目《通灵之战》的观后感
- python json函数_Json概述以及python对json的相关操作
- mysql infobright 缺点_Infobright存储引擎的特点
- python aes加密每次密码不一样_记AES加密在linux系统每次都不一样的问题
- verilog将像素数据写入txt_【测试工具】测试数据生成工具datafaker
- python 线程同步_python线程同步
- 销售订单(SO)-API-给已有的销售订单增加一行
- 用FTP命令实现自动下载和上载文件
- 自管理图形处理结构框架
- C++实现txt文件读到另一个txt文件,并替代其中默写特定字符