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通过yield实现数组全排列的方法
Mar 18 Python
Python实现屏幕截图的代码及函数详解
Oct 01 Python
Python获取某一天是星期几的方法示例
Jan 17 Python
老生常谈python的私有公有属性(必看篇)
Jun 09 Python
Python获取当前页面内所有链接的四种方法对比分析
Aug 19 Python
python最长回文串算法
Jun 04 Python
pandas Dataframe行列读取的实例
Jun 08 Python
安装docker-compose的两种最简方法
Jul 30 Python
在Python中os.fork()产生子进程的例子
Aug 08 Python
Python从入门到精通之环境搭建教程图解
Sep 26 Python
python中count函数知识点浅析
Dec 17 Python
python lambda 表达式形式分析
Apr 03 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
十大“创意”战术!
2020/03/04 星际争霸
屏蔽机器人从你的网站搜取email地址的php代码
2012/11/14 PHP
PHP数组循环操作详细介绍 附实例代码
2013/02/03 PHP
PHP导出EXCEL快速开发指南--PHPEXCEL的使用详解
2013/06/03 PHP
PHP数组和explode函数示例总结
2015/05/08 PHP
46 个非常有用的 PHP 代码片段
2016/02/16 PHP
thinkPHP+PHPExcel实现读取文件日期的方法(含时分秒)
2016/07/07 PHP
js 实现复制到粘贴板的功能代码
2010/05/13 Javascript
JavaScript判断textarea值是否为空并给出相应提示
2014/09/04 Javascript
JavaScript实现的内存数据库LokiJS介绍和入门实例
2014/11/17 Javascript
node.js微信公众平台开发教程
2016/03/04 Javascript
jQuery操作属性和样式详解
2016/04/13 Javascript
AngularJS的依赖注入实例分析(使用module和injector)
2017/01/19 Javascript
angular6 填坑之sdk的方法
2018/12/27 Javascript
vue.js引入外部CSS样式和外部JS文件的方法
2019/01/06 Javascript
JQuery样式操作、click事件以及索引值-选项卡应用示例
2019/05/14 jQuery
[01:18:33]Secret vs VGJ.S Supermajor小组赛C组 BO3 第一场 6.3
2018/06/04 DOTA
用Python和MD5实现网站挂马检测程序
2014/03/13 Python
python关键字and和or用法实例
2015/05/28 Python
python 中split 和 strip的实例详解
2017/07/12 Python
python 输出上个月的月末日期实例
2018/04/11 Python
Tensorflow卷积神经网络实例
2018/05/24 Python
python实现简单的文字识别
2018/11/27 Python
Python3 执行Linux Bash命令的方法
2019/07/12 Python
Python英文文章词频统计(14份剑桥真题词频统计)
2019/10/13 Python
flask框架自定义url转换器操作详解
2020/01/25 Python
python爬虫使用正则爬取网站的实现
2020/08/03 Python
python单例模式的应用场景实例讲解
2021/02/24 Python
CSS3制作漂亮的照片墙的实现代码
2016/06/08 HTML / CSS
Html5嵌入钉钉的实现示例
2020/06/04 HTML / CSS
倩碧美国官网:Clinique美国
2016/07/20 全球购物
巴黎卡诗美国官方网站:始于1964年的头发头皮护理专家
2017/07/10 全球购物
餐饮服务食品安全承诺书
2015/04/29 职场文书
2015年计划生育协会工作总结
2015/05/13 职场文书
用python画城市轮播地图
2021/05/28 Python
Redis中key的过期删除策略和内存淘汰机制
2022/04/12 Redis