我应该如何细分这条线以使其遵守PEP8?
assert (sum(map(lambda x: len(x),
(activities,apps,classes,users,verbs))) ==
Object.query
.filter(Object.status != ObjectStatusChoices.DELETED)
.count())
答案 0 :(得分:6)
如果将内容重写为单独的行,则永远不会出现。
它还允许你为中间值赋予有意义的名称(我必须猜测,但可能你知道它们),或者甚至将逻辑比特重构为函数(你也可以 给出有意义的名字。)
例如,不要更改任何逻辑,甚至不要重写任何逻辑(除了使用len
代替lambda x: len(x)
):
lengths = map(len, (activities,apps,classes,users,verbs))
db_query = Object.query.filter(Object.status != ObjectStatusChoices.DELETED)
assert sum(lengths) == db_query.count()
答案 1 :(得分:1)
首先,请记住,没有单一的“正确的PEP8答案”。我更喜欢:
in_mem = sum(len(x) for x in (activities,apps,classes,users,verbs))
in_db = Object.query.filter(
Object.status != ObjectStatusChoices.DELETED
).count()
assert in_mem == in_db
当然,如果你发现自己需要分成五行语句,你可能需要更多的陈述。