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 小结和实例
Apr 25 Python
RC4文件加密的python实现方法
Jun 30 Python
用Python写飞机大战游戏之pygame入门(4):获取鼠标的位置及运动
Nov 05 Python
教你用一行Python代码实现并行任务(附代码)
Feb 02 Python
python中(str,list,tuple)基础知识汇总
Feb 20 Python
python实现超市扫码仪计费
May 30 Python
Python3 无重复字符的最长子串的实现
Oct 08 Python
10行Python代码计算汽车数量的实现方法
Oct 23 Python
python 检查数据中是否有缺失值,删除缺失值的方式
Dec 02 Python
python openssl模块安装及用法
Dec 06 Python
如何使用python-opencv批量生成带噪点噪线的数字验证码
Dec 21 Python
教你用Python+selenium搭建自动化测试环境
Jun 18 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
php中截取中文字符串的代码小结
2011/07/17 PHP
php替换超长文本中的特殊字符的函数代码
2012/05/22 PHP
PHP获取数组的键与值方法小结
2015/06/13 PHP
mac系统下安装多个php并自由切换的方法详解
2017/04/21 PHP
cnblogs中在闪存中屏蔽某人的实现代码
2010/11/14 Javascript
JavaScript instanceof 的使用方法示例介绍
2013/10/23 Javascript
javascript中apply和call方法的作用及区别说明
2014/02/14 Javascript
Nodejs实现的一个静态服务器实例
2014/12/06 NodeJs
详解JavaScript中的事件流和事件处理程序
2016/05/20 Javascript
js省市县三级联动效果实例
2020/04/15 Javascript
jQuery实现微信长按识别二维码功能
2016/08/26 Javascript
VUE元素的隐藏和显示(v-show指令)
2017/06/23 Javascript
VUE axios上传图片到七牛的实例代码
2017/07/28 Javascript
vue数字类型过滤器的示例代码
2017/09/07 Javascript
bootstrap模态框关闭后清除模态框的数据方法
2018/08/10 Javascript
Vue实现美团app的影院推荐选座功能【推荐】
2018/08/29 Javascript
angular inputNumber指令输入框只能输入数字的实现
2019/12/03 Javascript
Vue 路由间跳转和新开窗口的方式(query、params)
2019/12/25 Javascript
JavaScript实现跟随鼠标移动的盒子
2021/01/28 Javascript
[01:03:51]2018DOTA2亚洲邀请赛 4.7 淘汰赛 VP vs LGD 第三场
2018/04/09 DOTA
[32:26]EG vs IG 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
python切换hosts文件代码示例
2013/12/31 Python
Python中replace方法实例分析
2014/08/20 Python
Python中的包和模块实例
2014/11/22 Python
PyTorch 1.0 正式版已经发布了
2018/12/13 Python
python微信公众号开发简单流程实现
2020/03/09 Python
python 写函数在一定条件下需要调用自身时的写法说明
2020/06/01 Python
DataFrame.groupby()所见的各种用法详解
2020/06/14 Python
python中如何打包用户自定义模块
2020/09/23 Python
Python中的面向接口编程示例详解
2021/01/17 Python
Python 中Operator模块的使用
2021/01/30 Python
圣诞树世界:Christmas Tree World
2019/12/10 全球购物
小学数学教学反思
2014/02/02 职场文书
分公司任命书
2014/06/06 职场文书
2015清明节祭奠英烈寄语大全
2015/03/04 职场文书
2016年教师政治思想表现评语
2015/12/02 职场文书