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 相关文章推荐
Python3如何解决字符编码问题详解
Apr 23 Python
浅谈python中的__init__、__new__和__call__方法
Jul 18 Python
Python插件virtualenv搭建虚拟环境
Nov 20 Python
Python中的pygal安装和绘制直方图代码分享
Dec 08 Python
python高阶爬虫实战分析
Jul 29 Python
Django 视图层(view)的使用
Nov 09 Python
django的settings中设置中文支持的实现
Apr 28 Python
jupyter 实现notebook中显示完整的行和列
Apr 09 Python
Python中的xlrd模块使用原理解析
May 21 Python
python中的django是做什么的
Jul 31 Python
Python基础之教你怎么在M1系统上使用pandas
May 08 Python
教你如何使用Python实现二叉树结构及三种遍历
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 购物车实例(申精)
2009/05/11 PHP
php面向对象全攻略 (一) 面向对象基础知识
2009/09/30 PHP
YII模块实现绑定二级域名的方法
2014/07/09 PHP
Yii2.0中使用js异步删除示例
2017/03/10 PHP
PHP无限极分类函数的实现方法详解
2017/04/15 PHP
php将html转为图片的实现方法
2017/05/19 PHP
js 判断文件类型并控制表单提交示例代码
2013/11/14 Javascript
javascript使用输出语句实现网页特效代码
2015/08/06 Javascript
javascript关于继承解析
2016/05/10 Javascript
jQuery中的ready函数与window.onload谁先执行
2016/06/21 Javascript
JavaScript实现按键精灵的原理分析
2017/02/21 Javascript
Angular动态绑定样式及改变UI框架样式的方法小结
2018/09/03 Javascript
jQuery实现的老虎机跑动效果示例
2018/12/29 jQuery
Jquery的autocomplete插件用法及参数讲解
2019/03/12 jQuery
自定义Vue组件打包、发布到npm及使用教程
2019/05/22 Javascript
原生js实现密码强度验证功能
2020/03/18 Javascript
详解Python中内置的NotImplemented类型的用法
2015/03/31 Python
用Python写飞机大战游戏之pygame入门(4):获取鼠标的位置及运动
2015/11/05 Python
利用python画一颗心的方法示例
2017/01/31 Python
对Python 文件夹遍历和文件查找的实例讲解
2018/04/26 Python
python的格式化输出(format,%)实例详解
2018/06/01 Python
Python实现八皇后问题示例代码
2018/12/09 Python
Python Pandas分组聚合的实现方法
2019/07/02 Python
Python使用Pandas库实现MySQL数据库的读写
2019/07/06 Python
德国二手设计师时装和复古时装跳蚤市场:Mädchenflohmarkt
2020/11/09 全球购物
美国室内盆栽植物购买网站:Plants.com
2020/04/24 全球购物
写好求职应聘自荐信的三部曲
2013/09/21 职场文书
员工自我鉴定范文
2013/10/06 职场文书
超市后勤自我鉴定
2014/01/17 职场文书
元旦晚会邀请函
2014/01/27 职场文书
班组长竞聘书
2014/03/31 职场文书
保护水资源的标语
2014/06/17 职场文书
外贸采购员岗位职责
2015/04/03 职场文书
蔬果开业典礼发言稿应该怎么写?
2019/09/03 职场文书
MySQL修改默认引擎和字符集详情
2021/09/25 MySQL
vue如何在data中引入图片的正确路径
2022/06/05 Vue.js