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

编程入门 行业动态 更新时间:2024-10-25 15:27:43

python中单<a href=https://www.elefans.com/category/jswz/34/1767448.html style=下划线(_)和双下划线(__)的特殊用法"/>

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

单下划线开头()
在模块中使用单下划线开头
模块中使用单下划线(
)开头定义函数、全局变量和类不能被模块外部以: from module import *形式导入。
但可以用:from module import _func形式单独导入。
当然定义函数、全局变量和类前面有2个或者更多下划线开头也不可以用 from module import *的形式导入。

# 单下划线开头的函数
def _my_abs(num):return 'my_abs:' + str(abs(num))# 单下划线开头的全局变量
_My_var# 单下划线开头的类
_My_Class:pass

在类中使用单下划线开头
带单下划线的类变量、实例变量和方法,允许类内部、类实例和子类访问,不受限制。
单下划线仅仅是一种私有申明约定,访问不受限制。
双下划线开头(__)
在class类的内部,带双下划线的类变量、实例变量、方法具有正常访问权限。
在继承结构中,带双下划线的基类的类变量和实例变量不能被子类直接访问。
在实例中,带双下划线的类变量、实例变量、方法不能被直接访问。但有办法间接访问。
双下划线开头的类变量、实例变量、方法在继承和实例中可以间接访问
双下划线开头的变量和方法替换为单下划线+类名+双下划线开头的变量和方法的形式,且双下划线开头的变量和方法后面最多只能以一个单下划线结束,否则也无法访问。

在学习过程中有什么不懂得可以加
我的python学习交流扣扣qun,688244617
群里有不错的学习教程、开发工具与电子书籍。
与你分享python企业当下人才需求及怎么从零基础学习好python,和学习什么内容。class BaseCls:def __init__(self, name, age, nick_name):self.name = nameself.__nick_name_ = nick_name  # __nick_name后面最多以一个_结束,否则通过基类名混淆的方式也无法访问了。self.age = ageclass SubCls(BaseCls):def __init__(self, name, age, addr, nick_name):super().__init__(name, age, nick_name)self.addr = addrself.a_nick_name = self._BaseCls__nick_name_ 

更多推荐

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

本文发布于:2023-07-28 22:06:01,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1335964.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:下划线   python

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!