【发布时间】:2011-08-21 08:07:03
【问题描述】:
给定这个 Python 类,实现一个 Django 表单,你将如何正确地打破它以满足 PEP8 标准?
class MyForm(forms.Form):
categories = forms.CharField(required=False,
widget=forms.SelectMultiple(choices=CATEGORY_VALUE),
label="Categories")
additional_item_ship_cost = forms.CharField(required=False, max_length=10,
label="Additional Item Ship Cost")
具体来说,widget= 和 label= 参数违反了 PEP8 的行长规则。
立即想到的是,我可以在类之外定义小部件和标签,然后在类定义中使用它们,但这感觉很不符合 Python 风格。
【问题讨论】:
-
blah_blah_cost是Charfield? -
是的 - 这是业务规则的一部分 - 它用于显示。我知道这听起来很奇怪,但这与我提出的问题并不真正相关。
-
PEP 8 并没有说是好是坏。但是,如果您想教条地遵循它,则可以对过长的参数使用“解释”变量。 (虽然这对于字符串常量来说似乎有些愚蠢。)