Python设置构造函数语法

Mic*_*l K 3 python

有谁知道这个令人困惑的集合构造语法的理由?我花了一天时间找不到这个bug,因为我在构建一个集时错过了一个逗号.

> {1 2} 
SyntaxError: invalid syntax  # This makes sense.
> {'a' 'b'} = set(['ab'])    # This does not.
Run Code Online (Sandbox Code Playgroud)

use*_*ica 6

这不是一个集合构造语法的东西.你正在遇到隐式字符串文字连接,这是一个令人困惑且令人惊讶的语言角落:

>>> 'a' 'b'
'ab'
Run Code Online (Sandbox Code Playgroud)

如果您将两个字符串文字彼此相邻,则将它们隐式组合成一个字符串.(这仅适用于文字; str(3) str([])是语法错误,而不是'3[]'.)