分配空列表

Den*_*er9 5 python binding list

我真的不知道我是如何偶然发现这个的,我也不知道该怎么想它,但显然这[] = []是 python 中的合法操作,所以是[] = '',但'' = []不允许。虽然似乎没有任何效果,但我想知道:到底是什么?

kin*_*all 3

这和Python的多重赋值(序列拆包)有关:

a, b, c = 1, 2, 3
Run Code Online (Sandbox Code Playgroud)

工作原理与以下相同:

[a, b, c] = 1, 2, 3
Run Code Online (Sandbox Code Playgroud)

由于字符串是字符序列,因此您还可以执行以下操作:

a, b, c = "abc"    # assign each character to a variable
Run Code Online (Sandbox Code Playgroud)

您发现的是退化情况:两侧都是空序列。语法上有效,因为它是左侧的列表而不是元组。不错的发现;以前从来没想过要尝试一下!

有趣的是,如果你尝试在左侧使用一个空元组,Python 会抱怨:

() = ()            # SyntaxError: can't assign to ()
Run Code Online (Sandbox Code Playgroud)

看来 Python 开发者忘记了堵住一个小漏洞!