Python是否支持对象文字属性值简写,即ECMAScript 6?

jaw*_*317 10 javascript python dictionary ecmascript-6

在ECMAScript 6中,我可以做这样的事情......

var id = 1;
var name = 'John Doe';
var email = 'email@example.com';
var record = { id, name, email };
Run Code Online (Sandbox Code Playgroud)

......作为一个简写:

var id = 1;
var name = 'John Doe';
var email = 'email@example.com';
var record = { 'id': id, 'name': name, 'email': email };
Run Code Online (Sandbox Code Playgroud)

Python中有任何类似的功能吗?

Ski*_*Ski 5

不,但是您可以通过这样做来实现相同的目标

record = {i: locals()[i] for i in ('id', 'name', 'email')}
Run Code Online (Sandbox Code Playgroud)

(归功于Python 变量作为 dict 的键

但我不会这样做,因为它会降低可读性并使静态检查器无法找到未定义名称错误。

你的例子,直接在 python 中输入与 set 相同,不是字典

{id, name, email} == set((id, name, email))
Run Code Online (Sandbox Code Playgroud)