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 гласят, что в привязке параметров НЕ должно быть пробелов вокруг =
. В этом контексте он не является оператором.
Но в любом случае, язык шаблонов таков, каков он есть. Примите его или оставьте.
Это единственный путь или есть другой?
АФАИК, это единственный путь. (И правильный путь, ИМХО.)