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基础教程之udp端口扫描
Feb 10 Python
浅谈Python的异常处理
Jun 19 Python
Python数据结构与算法之字典树实现方法示例
Dec 13 Python
Python实用技巧之列表、字典、集合中根据条件筛选数据详解
Jul 11 Python
Linux下python3.6.1环境配置教程
Sep 26 Python
Python检查和同步本地时间(北京时间)的实现方法
Dec 03 Python
python-django中的APPEND_SLASH实现方法
Jun 21 Python
Pycharm 2019 破解激活方法图文详解
Oct 11 Python
Pandas聚合运算和分组运算的实现示例
Oct 17 Python
Django认证系统user对象实现过程解析
Mar 02 Python
Python列表的深复制和浅复制示例详解
Feb 12 Python
python中print格式化输出的问题
Apr 16 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
Smarty Foreach 使用说明
2010/03/23 PHP
php设计模式之命令模式的应用详解
2013/05/21 PHP
使用xampp搭建运行php虚拟主机的详细步骤
2015/10/21 PHP
ExtJS 2.0实用简明教程 之获得ExtJS
2009/04/29 Javascript
jQuery javaScript捕获回车事件(示例代码)
2013/11/07 Javascript
javascript Event对象详解及使用示例
2013/11/22 Javascript
JavaScript异步回调的Promise模式封装实例
2014/06/07 Javascript
详解javascript遍历方式
2015/11/11 Javascript
原生JS下拉加载插件分享
2016/12/26 Javascript
jQuery实现用户输入自动完成功能
2017/02/13 Javascript
Node.js Mongodb 密码特殊字符 @的解决方法
2017/04/11 Javascript
vue-router权限控制(简单方式)
2018/10/29 Javascript
js打开word文档预览操作示例【不是下载】
2019/05/23 Javascript
微信小程序Echarts图表组件使用方法详解
2019/06/25 Javascript
layui table设置某一行的字体颜色方法
2019/09/05 Javascript
Python 多线程抓取图片效率对比
2016/02/27 Python
Python实现获取命令行输出结果的方法
2017/06/10 Python
Python SVM(支持向量机)实现方法完整示例
2018/06/19 Python
一文了解Python并发编程的工程实现方法
2019/05/31 Python
Python pip 安装与使用(安装、更新、删除)
2019/10/06 Python
Python3实现飞机大战游戏
2020/04/24 Python
说一下mysql, oracle等常见数据库的分页实现方案
2012/09/29 面试题
大专自我鉴定范文
2013/10/01 职场文书
国际贸易专业个人鉴定
2014/02/22 职场文书
竞聘书模板
2014/03/31 职场文书
《菜园里》教学反思
2014/04/17 职场文书
临床专业自荐信
2014/06/22 职场文书
公司领导班子召开党的群众路线教育实践活动总结大会新闻稿
2014/10/21 职场文书
外贸业务员岗位职责
2015/02/13 职场文书
售后前台接待岗位职责
2015/04/03 职场文书
涨价通知
2015/04/23 职场文书
话题作文之财富(600字)
2019/12/03 职场文书
Mysql中 unique列插入重复值该怎么解决呢
2021/05/26 MySQL
Windows11性能真的上涨35%? 桌面酷睿i9实测结果公开
2021/11/21 数码科技
阿里云k8s服务升级时502错误 springboot项目应用
2022/04/09 Servers
React如何使用axios请求数据并把数据渲染到组件
2022/08/05 Javascript