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

作者:BRYANT_2019 时间:2022-08-09 22:23:22 

函数使用单下划线_开头

使用单下划线(_)开头的函数_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中单下划线(_)和双下划线(__)的特殊用法,网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

来源:https://www.cnblogs.com/bryant24/archive/2019/08/29/11429653.html

标签:python,单下划线,下划线
0
投稿

猜你喜欢

  • PHP中类静态调用和范围解析操作符的区别解析

    2023-11-15 07:38:39
  • python方法如何实现字符串反转

    2022-10-26 22:07:03
  • python装饰器三种装饰模式的简单分析

    2022-06-26 17:29:46
  • 编写一个JS组件来说说call和apply的用法

    2008-11-23 17:11:00
  • 解析php中var_dump,var_export,print_r三个函数的区别

    2023-11-24 12:27:02
  • Python Flask前后端Ajax交互的方法示例

    2021-09-07 09:09:21
  • php下intval()和(int)转换使用与区别

    2023-06-11 14:09:54
  • CSS样式表:详细介绍IE7新支持的选择器

    2007-10-09 18:24:00
  • 基于js里调用函数时,函数名带括号和不带括号的区别

    2023-08-24 05:05:41
  • Django使用消息提示简单的弹出个对话框实例

    2023-02-08 06:23:07
  • 如何以及何时使用sIFR

    2008-03-07 12:38:00
  • php处理json格式数据经典案例总结

    2023-11-21 13:54:42
  • PHP实现用户认证及管理完全源码

    2023-11-19 20:26:19
  • asp如何对多个条件进行判断?

    2009-11-20 18:28:00
  • python的数据与matlab互通问题:SciPy

    2022-05-16 04:53:48
  • 跟老齐学Python之坑爹的字符编码

    2021-07-13 06:07:38
  • 将ASP纪录集输出成n列表格的方法

    2008-03-19 13:27:00
  • Python入门教程4. 元组基本操作 <font color=red>原创</font>

    2021-01-12 09:53:21
  • python绘制BA无标度网络示例代码

    2021-05-29 14:01:52
  • 超半数中文网页一年内将“消失”

    2008-03-08 12:49:00
  • asp之家 网络编程 m.aspxhome.com