Python中有各种各样的“_”下划线?分别有什么用?(转载)

2024-01-04 06:18

本文主要是介绍Python中有各种各样的“_”下划线?分别有什么用?(转载),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

引用:http://www.zzvips.com/article/111432.html

python中是用下划线可能的五种不同情况:
在这里插入图片描述

一.单下划线(_)

单下划线通常在3种情况下使用:

1.在解析程序中

_名称指向交互式解释器会话中,最后执行的语句结果。这首先是由标准CPython解释器完成的,其他解析器也紧随其后。

>>> _ 
Traceback (most recent call last): File "<stdin>", line 1, in <module> 
NameError: name '_' is not defined 
>>> 42 
>>> _ 
42 
>>> 'alright!' if _ else ':(' 
'alright!' 
>>> _ 
'alright!' 

2.作为名称

这与上一点有些关联,_ 用作一次性的名称。这为了让阅读代码的人知道,这里分配了某个名称,但是不打算使用。例如,你可能对循环计数器的实际值不感兴趣:

n = 42 
for _ in range(n): do_something() 

3.i18n(国际化)

_ 还可以用作函数。在这种情况下,它通常用于执行国际化和本地化字符串转换查找的函数的名称。这似乎源于并遵循 C 语言的相关规则。如在Django文档中所见:

from django.http import HttpResponse 
from django.utils.translation import gettext as _ def my_view(request): output = _("Welcome to my site.") return HttpResponse(output) 

第二个和第三个用法可能会发生冲突,因此,在任何还将 _ 用作 i18n 查找和翻译的代码块中,都应避免使用 _ 作为一次性使用的名称。

二.名称前加单下划线(例如_total)

名称前的单个下划线用于指定程序员将名称视为 私有。这可以视为一种约定,方便阅读代码的人知道以 _ 开头的名称供内部使用。 正如Python文档所述:

带有下划线的名称(例如 _spam)应被视为 API 的非公开部分(无论是函数、方法还是数据成员)。它应被视为实现细节,如有更改,恕不另行通知。

之所以说是一种约定,是因为它实际上对解析程序而言有着某种意义;如果我们从 import *,除非以模块/软件包的 all 列表明确包含它们,否则不会导入以 _ 开头的名称。

三. 名称后的单下划线(例如 total_)

名称后面的单个下划线用于避免名称遮盖另一个名称,当然是惯例。例如,如果你想命名某种格式,为了避免掩盖 Python 的内置格式,你可以将其命名为 format_。

四. 数字字面中的单下划线(例如 100_000)

PEP 515 指数建议扩展 Python 的语法,以便**下划线可以用作整体、浮点和复杂数字文本中数字分组的可视分隔符,**理由是:
这是其他现代语言的常见特征,可以帮助提高较长的文字或文本的可读性,其值应清楚地分隔成部分,如字节或十六进制表示法中的单词。
因此,我们可以执行以下操作:

# 十进制数按千分组 
amount = 10_000_000.0 # 按字对十六进制地址进行分组 
addr = 0xCAFE_F00D # 用二进制文字将位分组为半字节 
flags = 0b_0011_1111_0100_1110 #相同,用于字符串转换 
flags = int('0b_1111_0000', 2) 

五. 姓名前的双下划线(例如__total)

在名称(特别是方法名称)前使用双下划线(__)不是约定,只是对解析程序有特殊的意义。Python 管理这些名称,它用于避免名称与子类定义的名称冲突。正如Python文档所指出的那样,任何形式为__spam 的标识符(至少两个前导下划线,并且最多一个尾随下划线)在文本上均被 _classname__spam替换,其中 classname 是当前类名,其中前导下划线被去除。
以以下示例为例:

>>> class A(object): 
...     def _internal_use(self): 
...         pass 
...     def __method_name(self): 
...         pass 
...  
>>> dir(A()) 
['_A__method_name', ..., '_internal_use'] 

如上所示,_internal_use 不变,但是 __method_name 被改成 _ClassName__method_name。

六. 在名称之前和之后加上双下划线(例如__init__)

这些是 Python 使用的特殊方法名称。对于我们来说,这只是一个约定,即 Python 系统使用与用户定义的名称不冲突的名称的一种方式。然后,我们通常会覆盖这些方法并为 Python 调用它们时定义所需的行为。例如,在编写类时__init__重写方法。
没有什么可以阻止我们编写自己的特殊方法名称(但是最好别这么做):

>>> class C(object): 
...     def __mine__(self): 
...         pass 
... 
>>> dir(C) 
... [..., '__mine__', ...] 

尽量不要使用这种命名方式,只需要让Python定义的特殊名称遵循该约定即可。

这篇关于Python中有各种各样的“_”下划线?分别有什么用?(转载)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/568403

相关文章

Python获取C++中返回的char*字段的两种思路

《Python获取C++中返回的char*字段的两种思路》有时候需要获取C++函数中返回来的不定长的char*字符串,本文小编为大家找到了两种解决问题的思路,感兴趣的小伙伴可以跟随小编一起学习一下... 有时候需要获取C++函数中返回来的不定长的char*字符串,目前我找到两种解决问题的思路,具体实现如下:

python连接本地SQL server详细图文教程

《python连接本地SQLserver详细图文教程》在数据分析领域,经常需要从数据库中获取数据进行分析和处理,下面:本文主要介绍python连接本地SQLserver的相关资料,文中通过代码... 目录一.设置本地账号1.新建用户2.开启双重验证3,开启TCP/IP本地服务二js.python连接实例1.

基于Python和MoviePy实现照片管理和视频合成工具

《基于Python和MoviePy实现照片管理和视频合成工具》在这篇博客中,我们将详细剖析一个基于Python的图形界面应用程序,该程序使用wxPython构建用户界面,并结合MoviePy、Pill... 目录引言项目概述代码结构分析1. 导入和依赖2. 主类:PhotoManager初始化方法:__in

Python从零打造高安全密码管理器

《Python从零打造高安全密码管理器》在数字化时代,每人平均需要管理近百个账号密码,本文将带大家深入剖析一个基于Python的高安全性密码管理器实现方案,感兴趣的小伙伴可以参考一下... 目录一、前言:为什么我们需要专属密码管理器二、系统架构设计2.1 安全加密体系2.2 密码强度策略三、核心功能实现详解

Python Faker库基本用法详解

《PythonFaker库基本用法详解》Faker是一个非常强大的库,适用于生成各种类型的伪随机数据,可以帮助开发者在测试、数据生成、或其他需要随机数据的场景中提高效率,本文给大家介绍PythonF... 目录安装基本用法主要功能示例代码语言和地区生成多条假数据自定义字段小结Faker 是一个 python

Python实现AVIF图片与其他图片格式间的批量转换

《Python实现AVIF图片与其他图片格式间的批量转换》这篇文章主要为大家详细介绍了如何使用Pillow库实现AVIF与其他格式的相互转换,即将AVIF转换为常见的格式,比如JPG或PNG,需要的小... 目录环境配置1.将单个 AVIF 图片转换为 JPG 和 PNG2.批量转换目录下所有 AVIF 图

Python通过模块化开发优化代码的技巧分享

《Python通过模块化开发优化代码的技巧分享》模块化开发就是把代码拆成一个个“零件”,该封装封装,该拆分拆分,下面小编就来和大家简单聊聊python如何用模块化开发进行代码优化吧... 目录什么是模块化开发如何拆分代码改进版:拆分成模块让模块更强大:使用 __init__.py你一定会遇到的问题模www.

详解如何通过Python批量转换图片为PDF

《详解如何通过Python批量转换图片为PDF》:本文主要介绍如何基于Python+Tkinter开发的图片批量转PDF工具,可以支持批量添加图片,拖拽等操作,感兴趣的小伙伴可以参考一下... 目录1. 概述2. 功能亮点2.1 主要功能2.2 界面设计3. 使用指南3.1 运行环境3.2 使用步骤4. 核

Python 安装和配置flask, flask_cors的图文教程

《Python安装和配置flask,flask_cors的图文教程》:本文主要介绍Python安装和配置flask,flask_cors的图文教程,本文通过图文并茂的形式给大家介绍的非常详细,... 目录一.python安装:二,配置环境变量,三:检查Python安装和环境变量,四:安装flask和flas

使用Python自建轻量级的HTTP调试工具

《使用Python自建轻量级的HTTP调试工具》这篇文章主要为大家详细介绍了如何使用Python自建一个轻量级的HTTP调试工具,文中的示例代码讲解详细,感兴趣的小伙伴可以参考一下... 目录一、为什么需要自建工具二、核心功能设计三、技术选型四、分步实现五、进阶优化技巧六、使用示例七、性能对比八、扩展方向建