python中单下划线(_)和双下划线(__)的特殊用法


Posted in Python onAugust 29, 2019

函数使用单下划线_开头

使用单下划线(_)开头的函数_func不能被模块外部以: from module import *形式导入。

但可以用:from module import _func形式单独导入。

类属性和类方法使用单下划线_开头

_开头为保护类型的属性和方法,仅允许类内部和子类访问,类实例无法访问此属性和方法。

类属性和类方法使用双下划线__开头

__开头为私有类型属性和方法,仅允许类内部访问,类实例和派生类均不能访问此属性和方法。

所以双划线比单划线权限更严格。

补充说明

对于__开头的属性和方法如果派生类一定要访问,使用单下划线+基类名+双下划线开头的属性和方法的形式,

 且双下划线开头的属性和方法后面最多只能以一个单下划线结束,否则也无法访问。

class BaseCls:
  def __init__(self, name, age, nick_name):
    self.name = name
    self.__nick_name_ = nick_name # __nick_name后面最多以一个_结束,否则通过基类名混淆的方式也无法访问了。
    self.age = age


class SubCls(BaseCls):
  def __init__(self, name, age, addr, nick_name):
    super().__init__(name, age, nick_name)
    self.addr = addr
    self.a_nick_name = self._BaseCls__nick_name_

总结

以上所述是小编给大家介绍的python中单下划线(_)和双下划线(__)的特殊用法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

Python 相关文章推荐
决策树的python实现方法
Nov 18 Python
python使用Flask框架获取用户IP地址的方法
Mar 21 Python
举例讲解Python的Tornado框架实现数据可视化的教程
May 02 Python
举例讲解如何在Python编程中进行迭代和遍历
Jan 19 Python
pytorch中tensor的合并与截取方法
Jul 26 Python
python dlib人脸识别代码实例
Apr 04 Python
python 字符串追加实例
Jul 20 Python
Python实现多线程/多进程的TCP服务器
Sep 03 Python
python实现淘宝购物系统
Oct 25 Python
使用Python爬虫库BeautifulSoup遍历文档树并对标签进行操作详解
Jan 25 Python
完美解决keras保存好的model不能成功加载问题
Jun 11 Python
python中最小二乘法详细讲解
Feb 19 Python
python 计算两个列表的相关系数的实现
Aug 29 #Python
python同步windows和linux文件
Aug 29 #Python
python中几种自动微分库解析
Aug 29 #Python
详解python中index()、find()方法
Aug 29 #Python
python同步两个文件夹下的内容
Aug 29 #Python
Python中 CSV格式清洗与转换的实例代码
Aug 29 #Python
详解如何在cmd命令窗口中搭建简单的python开发环境
Aug 29 #Python
You might like
Apache设置虚拟WEB
2006/10/09 PHP
深入php socket的讲解与实例分析
2013/06/13 PHP
php颜色转换函数hex-rgb(将十六进制格式转成十进制格式)
2013/09/23 PHP
CodeIgniter实现从网站抓取图片并自动下载到文件夹里的方法
2015/06/17 PHP
php实现快速对二维数组某一列进行组装的方法小结
2019/12/04 PHP
Ext 表单布局实例代码
2009/04/30 Javascript
JavaScript window.setTimeout() 的详细用法
2009/11/04 Javascript
JSON.parse 解析字符串出错的解决方法
2010/07/08 Javascript
为jQuery.Treeview添加右键菜单的实现代码
2010/10/22 Javascript
JavaScript判断变量是否为空的自定义函数分享
2015/01/31 Javascript
JavaScript事件 "事件对象"的注意要点
2016/01/14 Javascript
JS组件系列之Bootstrap table表格组件神器【二、父子表和行列调序】
2016/05/10 Javascript
JS表格组件神器bootstrap table详解(强化版)
2016/05/26 Javascript
JS函数arguments数组获得实际传参数个数的实现方法
2016/05/28 Javascript
javascript中使用未定义变量或值的情况分析
2016/07/19 Javascript
bootstrap表单示例代码分享
2017/05/18 Javascript
vue+element的表格实现批量删除功能示例代码
2018/08/17 Javascript
vue2.0$nextTick监听数据渲染完成之后的回调函数方法
2018/09/11 Javascript
使用ng-packagr打包Angular的方法示例
2018/09/21 Javascript
layDate日期控件使用方法详解
2018/11/15 Javascript
解决cordova+vue 项目打包成APK应用遇到的问题
2019/05/10 Javascript
jquery-ui 进度条功能示例【测试可用】
2019/07/25 jQuery
js实现录音上传功能
2019/11/22 Javascript
Websocket 向指定用户发消息的方法
2020/01/09 Javascript
JavaScript布尔运算符原理使用解析
2020/05/06 Javascript
[08:07]DOTA2每周TOP10 精彩击杀集锦vol.8
2014/06/25 DOTA
Python自定义函数实现求两个数最大公约数、最小公倍数示例
2018/05/21 Python
Python操作Excel插入删除行的方法
2018/12/10 Python
如何分离django中的媒体、静态文件和网页
2019/11/12 Python
python GUI库图形界面开发之PyQt5菜单栏控件QMenuBar的详细使用方法与实例
2020/02/28 Python
为什么说python适合写爬虫
2020/06/11 Python
Python pip使用超时问题解决方案
2020/08/03 Python
浅析Python 责任链设计模式
2020/09/11 Python
使用纯HTML5编写一款网页上的时钟的代码分享
2015/11/16 HTML / CSS
优秀工会工作者事迹材料
2014/06/02 职场文书
感恩母亲节活动总结
2015/02/10 职场文书