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赋值操作方法分享
Mar 23 Python
使用Python脚本将绝对url替换为相对url的教程
Apr 24 Python
将Python的Django框架与认证系统整合的方法
Jul 24 Python
django+echart绘制曲线图的方法示例
Nov 26 Python
Python3 使用cookiejar管理cookie的方法
Dec 28 Python
Python操作配置文件ini的三种方法讲解
Feb 22 Python
解决pycharm启动后总是不停的updating indices...indexing的问题
Nov 27 Python
Python爬虫实现百度翻译功能过程详解
May 29 Python
Python装饰器如何实现修复过程解析
Sep 05 Python
python+flask编写一个简单的登录接口
Nov 13 Python
python scipy 稀疏矩阵的使用说明
May 26 Python
python 如何做一个识别率百分百的OCR
May 29 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字符串的连接的简单实例
2013/12/30 PHP
PHP字符串的递增和递减示例介绍
2014/02/11 PHP
使用PHP生成二维码的方法汇总
2015/07/22 PHP
PHP中Array相关函数简介
2016/07/03 PHP
php支付宝APP支付功能
2020/07/29 PHP
javascript向flash swf文件传递参数值注意细节
2012/12/11 Javascript
JavaScript去除空格的三种方法(正则/传参函数/trim)
2013/02/06 Javascript
javascript原型链继承用法实例分析
2015/01/28 Javascript
php利用curl获取远程图片实现方法
2015/10/26 Javascript
解决js图片加载时出现404的问题
2020/11/30 Javascript
基于jquery实现动态竖向柱状条特效
2016/02/12 Javascript
TypeOf这些知识点你了解吗
2016/02/21 Javascript
几种经典排序算法的JS实现方法
2016/03/25 Javascript
Bootstrap3制作图片轮播效果
2016/05/12 Javascript
移动端 一个简单易懂的弹出框
2016/07/06 Javascript
学习Angular中作用域需要注意的坑
2016/08/17 Javascript
angular实现表单验证及提交功能
2017/02/01 Javascript
[01:15:56]2018DOTA2亚洲邀请赛3月30日 小组赛A组 TNC VS Newbee
2018/03/31 DOTA
[01:27:30]LGD vs Newbee 2019国际邀请赛小组赛 BO2 第二场 8.16
2019/08/19 DOTA
[39:21]LGD vs OG 2019国际邀请赛淘汰赛 胜者组 BO3 第二场 8.24
2019/09/10 DOTA
使用python加密自己的密码
2015/08/04 Python
Python实现希尔排序算法的原理与用法实例分析
2017/11/23 Python
python获取时间及时间格式转换问题实例代码详解
2018/12/06 Python
python 获取毫秒数,计算调用时长的方法
2019/02/20 Python
详解Python 解压缩文件
2019/04/09 Python
python对csv文件追加写入列的方法
2019/08/01 Python
python GUI库图形界面开发之PyQt5输入对话框QInputDialog详细使用方法与实例
2020/02/27 Python
Python使用xlrd实现读取合并单元格
2020/07/09 Python
CSS3实现大小不一的粒子旋转加载动画
2016/04/21 HTML / CSS
迪士尼西班牙官方网上商店:ShopDisney西班牙
2020/02/02 全球购物
技校毕业生的自我评价
2013/12/27 职场文书
经典安踏广告词
2014/03/21 职场文书
幼儿教师师德承诺书
2014/05/23 职场文书
2014年科普工作总结
2014/12/06 职场文书
详细聊聊关于Mysql联合查询的那些事儿
2021/10/24 MySQL
mysql自增长id用完了该怎么办
2022/02/12 MySQL