首页 > 解决方案 > Python 元组中的值分配如何工作?

问题描述

在使用 Python 编写脚本时,我遇到了 sys 模块的这个内置方法部分,sys.flags它返回用于运行 python 脚本的标志元组。输出如下所示:

(debug=0, inspect=0, interactive=0, optimize=1, dont_write_bytecode=0, no_user_site=0, no_site=0, ignore_environment=0, verbose=0, bytes_warning=0, quiet=0, hash_randomization=1, isolated=0, dev_mode=False, utf8_mode=0)

我很困惑,因为我认为您无法在 Python 中的另一个表达式中嵌入赋值,到目前为止,我还无法在 Google 上找到解释该元组行为的答案。

标签: pythontuples

解决方案


实际输出为:

>>> sys.flags
sys.flags(debug=0, inspect=0, interactive=0, optimize=0, dont_write_bytecode=0, no_user_site=0, no_site=0, ignore_environment=0, verbose=0, bytes_warning=0, quiet=0, hash_randomization=1, isolated=0, dev_mode=False, utf8_mode=0)

sys.flags左括号之前是至关重要的。它表明这sys.flags不是元组。

然而,您完全可以创建一个类,其__repr__方法将返回这种类似元组的表示:

class Weird:
    def __init__(self, a, b):
        self.a, self.b = a, b

    def __repr__(self):
        return f"(a={self.a}, b={self.b})"

然后输出将如下所示:

>>> Weird(1,2)
(a=1, b=2)

Weird绝对不是元组。


推荐阅读