python中单下划线(_)和双下划线(__)的特殊用法

yipeiwu_com6年前Python基础

函数使用单下划线_开头

  使用单下划线(_)开头的函数_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循环嵌套的多种使用方法解析

这篇文章主要介绍了python循环嵌套的多种使用方法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 使用循环嵌套来获取100以内的...

Python实现带下标索引的遍历操作示例

本文实例讲述了Python实现带下标索引的遍历操作。分享给大家供大家参考,具体如下: 代码如下: #coding=utf-8 #python - 实现带下标索引的遍历. str =...

Python实现批量执行同目录下的py文件方法

Python实现批量执行同目录下的py文件方法

Python版本:3.5 网上找了好多资料都没有直观的写出怎么批量执行,so,整理了一个小程序。最初是为了用Python进行单元测试,同目录下有两个unittest文件, AllTes...

Python使用pyshp库读取shapefile信息的方法

通过pyshp库,可以读写Shapefile文件,查询相关信息,github地址为 https://github.com/GeospatialPython/pyshp import...

Python设计模式之建造者模式实例详解

Python设计模式之建造者模式实例详解

本文实例讲述了Python设计模式之建造者模式。分享给大家供大家参考,具体如下: 建造者模式(Builder Pattern):将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以...