0

我有这个非常简单的 if 块:

if obj_type == "domain":
    key = "domain"
elif obj_type == "db_user":
    key = "username"
else:
    key = "name"

这些可以转换为 if 表达式:
key = "domain" if obj_type == "domain" else "usernme" if obj_type == "db_user" else "name"

在性能上有什么优势吗?如果这不是一个因素,那么为了可读性和 PEP8 合规性,应该首选哪一个?

4

1 回答 1

6

它们的性能相同,因此如果您需要在两者之间进行选择,请使用第一个。

由于您实际上只是在两个集合之间创建映射,因此使用字典将是一种更好的方法。它更快,可以说更具可读性:

mapping = {
    'domain': 'domain',
    'db_user': 'username',
}

key = mapping.get(obj_type, 'name')
于 2013-10-30T04:32:57.177 回答