И еще один способ (который является оттиском Техника Эрика № 2, а также должен давать ошибку времени компиляции, если интерфейс не реализован)
IAInterface AsIAInterface
{
get { return this; }
}
Я согласен с использованием двойного (8 столбцов) отступа для линий продолжения , поскольку он легко отличает продолжение от блочного отступа. Я также хочу, чтобы отступ был независимым от длины первой строки ; длина будет изменяться при сохранении кода, но это не должно требовать изменения строк продолжения.
Так что не выравнивайте строки продолжения с чем-либо на первой строке; вместо этого используют одинаковые относительные отступы для любой строки продолжения.
Обратные слэши для продолжения проблематичны (невидимые конечные пробелы могут изменить эффект), и, к счастью, почти никогда не нужны, поскольку Python автоматически продолжает оператор в синтаксисе открытых скобок. Прекращение вызовов функций в открытой парне (и диктовок в открытой скобке, списков в открытой скобке и т. Д.) - вот чего я достигаю в первую очередь.
Так что я бы сделал:
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")