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 def函数的定义、使用及参数传递实现代码
Aug 10 Python
详解Python的单元测试
Apr 28 Python
python基础知识小结之集合
Nov 25 Python
Python探索之静态方法和类方法的区别详解
Oct 27 Python
python中单下划线_的常见用法总结
Jul 10 Python
python利用插值法对折线进行平滑曲线处理
Dec 25 Python
python树莓派红外反射传感器
Jan 21 Python
python使用Paramiko模块实现远程文件拷贝
Apr 30 Python
python lambda表达式(匿名函数)写法解析
Sep 16 Python
opencv python图像梯度实例详解
Feb 04 Python
Python中tkinter的用户登录管理的实现
Apr 22 Python
聊聊Python中关于a=[[]]*3的反思
Jun 02 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正则过滤html标签、空格、换行符的代码(附说明)
2010/10/25 PHP
如何用PHP实现插入排序?
2013/04/10 PHP
PHP限制页面只能在微信自带浏览器访问的代码
2014/01/15 PHP
php实现paypal 授权登录
2015/05/28 PHP
jQuery 注意事项 与原因分析
2009/04/24 Javascript
js中精确计算加法和减法示例
2014/03/28 Javascript
浅谈javascript中onbeforeunload与onunload事件
2015/12/10 Javascript
基于JS+Canves实现点击按钮水波纹效果
2016/09/15 Javascript
jQuery插件HighCharts绘制2D圆环图效果示例【附demo源码下载】
2017/03/09 Javascript
jQuery实现可拖动进度条实例代码
2017/06/21 jQuery
Vue 项目分环境打包的方法示例
2018/08/03 Javascript
Angular6 正则表达式允许输入部分中文字符
2018/09/10 Javascript
微信小程序实现分享朋友圈的图片功能示例
2019/01/18 Javascript
微信小程序抽奖组件的使用步骤
2021/01/11 Javascript
Python实现一个简单的验证码程序
2017/11/03 Python
对TensorFlow的assign赋值用法详解
2018/07/30 Python
python中单例常用的几种实现方法总结
2018/10/13 Python
python3 读取Excel表格中的数据
2018/10/16 Python
Python获取航线信息并且制作成图的讲解
2019/01/03 Python
python 控制Asterisk AMI接口外呼电话的例子
2019/08/08 Python
Django项目后台不挂断运行的方法
2019/08/31 Python
使用Python和OpenCV检测图像中的物体并将物体裁剪下来
2019/10/30 Python
2020版Python学习路线图(附学习资料)
2020/09/15 Python
python爬取youtube视频的示例代码
2021/03/03 Python
html5 application cache遇到的严重问题
2012/12/26 HTML / CSS
应届生.NET方向面试题
2015/05/23 面试题
班长岗位职责
2013/11/10 职场文书
教学大赛获奖感言
2014/01/15 职场文书
祖国在我心中演讲稿600字
2014/05/04 职场文书
学生顶撞老师的检讨书
2014/09/17 职场文书
美国旅游签证工作证明
2014/10/14 职场文书
2015年医生个人工作总结
2015/04/25 职场文书
2015年中秋晚会主持词
2015/07/01 职场文书
2016应届毕业生自荐信范文
2016/01/28 职场文书
SQL Server中常用截取字符串函数介绍
2022/03/16 SQL Server
MySQL RC事务隔离的实现
2022/03/31 MySQL