通过阅读 PEP-8,我知道您应该将右括号与函数调用中的最后一个参数放在同一行:
ShortName.objects.distinct().filter(
product__photo__stockitem__isnull=False)
可能,最好避免使用长表达式。但如果它不受欢迎,你将如何处理多个链式方法调用?结束括号是否应该在新行上?
ShortName.objects.distinct().filter(
product__photo__stockitem__isnull=False
).values_list('value', flat=True)
无参数方法呢?如何在不引用中间返回值的情况下将它们写在多行上?
ShortName.objects.distinct(
).filter().values() # looks ugly
更新: How to break a line of chained methods in Python?有一个重复的问题?. 接受的答案暗示了一种熟悉的 jQuery 风格,即以点开头的每一行。作者没有提供任何理由或权威参考,所以我想对这种风格或替代方案进行确认。