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写的PHPMyAdmin暴力破解工具代码
Aug 06 Python
Python中几种操作字符串的方法的介绍
Apr 09 Python
详解python中 os._exit() 和 sys.exit(), exit(0)和exit(1) 的用法和区别
Jun 23 Python
python进程管理工具supervisor的安装与使用教程
Sep 05 Python
python并发2之使用asyncio处理并发
Dec 21 Python
python中的列表与元组的使用
Aug 08 Python
Python类中的魔法方法之 __slots__原理解析
Aug 26 Python
numpy.array 操作使用简单总结
Nov 08 Python
keras模型可视化,层可视化及kernel可视化实例
Jan 24 Python
python Tornado框架的使用示例
Oct 19 Python
python学习之使用Matplotlib画实时的动态折线图的示例代码
Feb 25 Python
python爬虫scrapy框架之增量式爬虫的示例代码
Feb 26 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中突破基于HTTP_REFERER的防盗链措施(stream_context_create)
2011/03/29 PHP
浏览器关闭后,能继续执行的php函数(ignore_user_abort)
2012/08/01 PHP
php实现统计邮件大小的方法
2013/08/06 PHP
PHP中对各种加密算法、Hash算法的速度测试对比代码
2014/07/08 PHP
ThinkPHP中I(),U(),$this->post()等函数用法
2014/11/22 PHP
php+xml编程之xpath的应用实例
2015/01/24 PHP
getElementsByTagName vs selectNodes效率 及兼容的selectNodes实现
2010/02/26 Javascript
浅谈Javascript事件处理程序的几种方式
2012/06/27 Javascript
文本框回车提交与禁止提交示例
2013/09/27 Javascript
node.js中的url.parse方法使用说明
2014/12/10 Javascript
sails框架的学习指南
2014/12/22 Javascript
jQuery 限制输入字符串长度
2016/06/20 Javascript
jquery.validate[.unobtrusive]和Bootstrap实现tooltip错误提示问题分析
2016/10/30 Javascript
Node.js 使用命令行工具检查更新
2017/06/08 Javascript
使用AngularJS编写多选按钮选中时触发指定方法的指令代码详解
2017/07/24 Javascript
Vue组件之Tooltip的示例代码
2017/10/18 Javascript
解决JS表单验证只有第一个IF起作用的问题
2018/12/04 Javascript
Vue Cli3 打包配置并自动忽略console.log语句的方法
2020/04/23 Javascript
JS表单验证插件之数据与逻辑分离操作实例分析【策略模式】
2020/05/01 Javascript
JavaScript设计模式之策略模式实现原理详解
2020/05/29 Javascript
Django中对通过测试的用户进行限制访问的方法
2015/07/23 Python
Python基于正则表达式实现检查文件内容的方法【文件检索】
2017/08/30 Python
python中报错"json.decoder.JSONDecodeError: Expecting value:"的解决
2019/04/29 Python
python opencv 图像拼接的实现方法
2019/06/27 Python
Python求离散序列导数的示例
2019/07/10 Python
django处理select下拉表单实例(从model到前端到post到form)
2020/03/13 Python
python使用yaml 管理selenium元素的示例
2020/12/01 Python
python实现计算器简易版
2020/12/17 Python
什么情况下你必须要把一个类定义为abstract的
2013/01/06 面试题
村优秀党员事迹材料
2014/01/15 职场文书
机械个人求职信范文
2014/01/24 职场文书
优秀教师申报材料
2014/12/16 职场文书
端午节活动总结报告
2015/02/11 职场文书
教师调动申请报告
2015/05/18 职场文书
2019最新版火锅店的创业计划书 !
2019/07/12 职场文书
教你如何使用Python开发一个钉钉群应答机器人
2021/06/21 Python