在Python中ES6计算属性名

2024-04-29 03:53:47 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图在Python中找到一个等效的ES6特性。在

在JS中,我有这样的东西:

let obj = {['composed' + objKey()]: true}

我希望能够在Python的dict构造函数中编写字典键,类似于: 在

^{pr2}$

[getAuthor()]应生成该函数返回值的字典键。或者如果它是变量,它的值,等等。。。在

在Python中有这样的方法吗?在

我试过做dict=('%s' % (variable,)=self.content,但结果出错了。在


Tags: 方法函数trueobj字典js特性dict
1条回答
网友
1楼 · 发布于 2024-04-29 03:53:47

就像在JavaScript中使用对象文本一样,您应该在Python中使用字典文本。这在Python中是完全等效的:

def objKey():
   return 'foo'

obj = {
    'composed' + objKey(): True
}

print(obj['composedfoo']) # True

或者在你的实际情况中:

^{pr2}$

正如Jon在评论中强调的那样,JavaScript对象文本和Python dict文本之间的最大区别在于Python对键的行为基本上是JavaScript默认使用[]的行为。在

因此,要在JavaScript中翻译{ [expr]: value },可以用Python编写{ expr: value }。但是当你用JavaScript写{ key: value }时,你必须理解它本质上是一个{ ['key']: value },这使得它等价于Python中的{ 'key': value }。在

之所以需要字符串文本作为字符串键,是因为Python字典可以有几乎任意的key对象,并且不像JavaScript对象那样仅限于字符串键。在

相关问题 更多 >