【发布时间】:2013-03-20 14:59:34
【问题描述】:
我应该如何分解这条线以使其遵守 PEP8?
assert (sum(map(lambda x: len(x),
(activities,apps,classes,users,verbs))) ==
Object.query
.filter(Object.status != ObjectStatusChoices.DELETED)
.count())
【问题讨论】:
-
嗯,首先你应该将
lambda x: len(x)替换为len。 :) -
PEP-8's maximum line length section 有什么不清楚的地方?
-
真的,我想大多数人会说将其分成多行并命名中间值(甚至将片段重构为函数并命名它们 ),此时原始问题变得毫无意义。
-
@DogukanTufekci
lambda x: len(x)是一个函数对象,它接受一个参数(我们将调用x)并返回len(x)。len是一个函数对象,它接受一个参数(我们将调用x)并返回len(x)。尝试同时执行sum(map(lambda x: len(x), (a,b,c)))和sum(map(len, (a,b,c)))- 它们是相同的。 -
map()将函数应用于每个元素,lambda只是一种创建函数的方法。试试我评论中的两个例子,看看。
标签: python python-2.7 pep8