gpt4 book ai didi

python - 了解 __(双下划线)在 python 中的实际用法

转载 作者:行者123 更新时间:2023-11-28 22:40:07 25 4
gpt4 key购买 nike

我看到函数返回元组,在接收端,有时我看到类似这样的语法。

def foo():
return (True, False)

foo, __ = foo()

我调查的是,__(双下划线)不会给出 pep8 错误,就好像它没有在任何地方使用一样。

寻找:

  1. 我们应该使用这个的实践情况
  2. 我们应该避免的情况
  3. 任何替代方案。

最佳答案

正如 Andrés Pérez-Albela H. 提到的,双下划线通常用于“魔术方法”,如 __init__()。在该用法中,它们引导 尾随方法名称。方法(或变量)名称前的单个下划线,如 _index,通常表示“这是私有(private)成员变量或私有(private)方法,不应被其他代码使用”。这只是约定俗成,对 Python 解释器没有任何特殊含义,而某些双下划线方法确实具有特殊含义。

现在,关于您提出的问题:__(双下划线)作为变量名在 Python 编码中并不常见。更常见的约定是对不需要其内容的任何变量使用_(单个下划线)。参见 What is the purpose of the single underscore "_" variable in Python?了解更多详情。

但是,有时出于某些原因,程序员可能希望避免使用 _ 作为变量名。具体来说,如果他在交互式 Python 解释器 session 中运行代码。在交互式 session 中,从前一个表达式返回的值存储在名为 _ 的变量中。因此,如果您习惯于将 _ 用作“我不关心其内容的变量”,但您正处于交互式 Python 解释器 session 中,您可能会切换到使用 __ 用于此目的。

所以我最好的猜测是您看到的示例代码旨在在交互式 Python session 中运行,其中 _ 已经具有特殊含义。因此,编写代码的人使用 __ 作为一次性变量,而不是更常用的 _

关于python - 了解 __(双下划线)在 python 中的实际用法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34058533/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com