优草派 > Python

python中 _、__、__xx__()区别及使用场景

陈思远         优草派

在Python中,我们经常会遇到变量、函数、类、模块名以“_”开头、结尾或双下划线开头结尾的情况,它们分别代表着不同的含义和使用场景。下面就具体探讨一下这些符号在Python中的作用。

python中 _、__、__xx__()区别及使用场景

1. 单下划线“_”

单下划线“_”是Python中的一个命名约定,用来指定变量、方法、类等不应该再外部模块中被调用的内部属性。这不是Python强制限制的,只是一种编码习惯。单下划线结合了一些特殊的方法和属性,让它们变成了“私有的”。

在模块中使用单下划线,表示模块内的变量、函数和类是内部实现,用户在导入模块时,不会导入以单下划线开头的对象。

总结来说,单下划线用于表示变量、方法、类等为保护属性,意味着这些属性不应该被外部调用或访问到。

2. 双下划线“__”

双下划线“__”是Python中的一个命名约定,被称为“名称修饰”。它可以有效地避免子类中的命名冲突。这样,不同的子类就可以定义自己的__foo()方法,双下划线可以避免父类成员名的冲突。当然,这只是Python的一种约定,而不是强制限制。

我们可以通过以下方式(_classname__identifier)访问双下划线的属性:

class MyClass:

def __init__(self):

self.__superprivate = "Hello, World!"

self._semiprivate = "Hello, Python!"

mc = MyClass()

print(mc._semiprivate) # 输出 Hello, Python!

print(mc.__superprivate) # 报错 'MyClass' object has no attribute '__superprivate'

print(mc._MyClass__superprivate) # 输出 Hello, World!

在上面的示例中,我们使用单下划线来表示表示变量为私有属性,使用双下划线修饰的属性是真正的私有属性。如果想要在类外访问类的私有成员,可以通过类名._类名__私有成员名来实现。

3. 双下划线“__xx__()”

双下划线结合第1个字符为给函数或属性命名,例如__init__()代表类的构造函数。Python中还有许多这样的双下划线特殊方法,可以灵活地定义类的属性、行为、操作符重载等等。例如:__str__()方法用于定义对象的文本输出格式;__lt__()方法用于定义“小于号”的操作符重载。

当我们定义一个类时,通常会重载双下划线开头和结尾的一些特殊方法,这可以帮助我们更好地使用Python语言的一些特定功能。

使用场景

1. 单下划线“_”

以下是单下划线的一些常见使用场景:

1.1 避免与Python关键字冲突。如sum_、type_

1.2 区分公共属性和类内部使用的属性。如_getval、_setval

1.3 暗示属性的使用约定。如_index

2. 双下划线“__”

以下是双下划线的一些常见使用场景:

2.1 避免与子类中的属性命名冲突。如__name

2.2 实现类的封装。

3. 双下划线“__xx__()”

以下是双下划线特殊函数的常见使用场景:

3.1 __init__():对象的构造函数

3.2 __str__():对象的文本输出格式

3.3 __lt__():小于号操作符重载

摘要:本文介绍了Python中单下划线“_”、双下划线“__”和双下划线特殊函数“__xx__()”的作用和使用场景。通过本文的学习,读者能够更好地掌握Python中这些特定的命名约定和使用方式。

关键词:Python、_、__、__xx__()、变量、方法、类、模块名、保护属性、私有属性、名称修饰、操作符重载、构造函数、文本输出格式、小于号操作符重载

  • 微信好友

  • 朋友圈

  • 新浪微博

  • QQ空间

  • 复制链接

取消
5天短视频训练营
新手入门剪辑课程,零基础也能学
分享变现渠道,助你兼职赚钱
限时特惠:0元
立即抢
新手剪辑课程 (精心挑选,简单易学)
第一课
新手如何学剪辑视频? 开始学习
第二课
短视频剪辑培训班速成是真的吗? 开始学习
第三课
不需要付费的视频剪辑软件有哪些? 开始学习
第四课
手机剪辑app哪个好? 开始学习
第五课
如何做短视频剪辑赚钱? 开始学习
第六课
视频剪辑接单网站APP有哪些? 开始学习
第七课
哪里可以学短视频运营? 开始学习
第八课
做短视频运营需要会什么? 开始学习
【原创声明】凡注明“来源:优草派”的文章,系本站原创,任何单位或个人未经本站书面授权不得转载、链接、转贴或以其他方式复制发表。否则,本站将依法追究其法律责任。

客服热线:0731-85127885

湘ICP备19005950号-1  

工商营业执照信息

违法和不良信息举报

举报电话:0731-85127885 举报邮箱:tousu@csai.cn

优草派  版权所有 © 2024