Python - Пробел перед и после операторов, таких как =, +, - и т.д.

В соответствии с правилами PEP 8 для python, вы должны использовать пробелы перед и после операторов, например, "x = 1 + 2". Я следую этому соглашению, и мне не нравится, когда в операторе нет пробелов.

В настоящее время я работаю над проектом Django и хочу включить .html документ с ключевым словом.

> {% include "pagination.html" with page = shares %}

Если я запускаю его как написано выше, я получаю ошибку ключевого слова:

"with" в теге 'include' нуждается как минимум в одном аргументе ключевого слова.

Без пробелов до и после = работает без проблем. Это единственный способ или есть другой?

Заранее спасибо.

В некоторых случаях не следует использовать пробелы, например, при установке значений по умолчанию для параметров функции, или при передаче kwargs (аргументов ключевых слов), как в вашем случае.

См: https://peps.python.org/pep-0008/#whitespace-in-expressions-and-statements

Нет, вы должны удалить пробелы до и после оператора =, потому что, он добавляет пробел между именем аргумента & = & значением аргумента, интерпретатор не может различить аргументы, он получает имя аргумента, но не находит значение.

поэтому нужно убрать пробелы после и перед оператором = , чтобы интерпретатор знал, что это предоставленный аргумент.

Как было отмечено, это язык шаблонов Django, а не настоящий Python, поэтому правила стиля Python не применяются.

Однако, я бы утверждал, что page=shares в

{% include "pagination.html" with page=shares %}

является привязкой именованного параметра, а не присвоением. Как таковая, она согласуется с этим Python:

self.someMethod(1, 2, someFlag=True)

Правила стиля PEP гласят, что в привязке параметров НЕ должно быть пробелов вокруг =. В этом контексте он не является оператором.

Но в любом случае, язык шаблонов таков, каков он есть. Примите его или оставьте.


Это единственный путь или есть другой?

АФАИК, это единственный путь. (И правильный путь, ИМХО.)

Вернуться на верх