В python нет возможности различать аргументы, локальные переменные и глобальные переменные. Самый простой способ сделать это может быть есть некоторые кодирования конвенции, такие какАргументы, локальные переменные и соглашения о кодировании глобальных переменных в Python
- Глобальные переменные начинаются с _ и заглавную букву
- аргументы заканчиваться с _
_Gvariable = 10 def hello(x_, y_): z = x_ + y_
Является ли это Pythonian способ идти? Я имею в виду, есть ли хорошо установленные/согласованные стандарты кодирования, чтобы отличать их в python?
=== ДОБАВЛЕНО ===
Я просто хочу, чтобы различать между аргументами и локальными переменными. Поскольку аргументы даны извне и больше похожи на ПЗУ в том смысле, что предполагается, что он не считается только чтением. C++ предоставляет ключевое слово const, чтобы предотвратить изменение аргументов, но не для python. Я думал, что добавление _ может быть одним из способов имитировать эту функцию в python.
читать PEP 8: http://www.python.org/dev/peps/pep-0008/ –
Что побуждает вас хотеть сделать это? Обычно это достаточно очевидно, когда появляется имя, и это достаточно легко (если вы не делаете что-то безумное), чтобы понять, не прочитав код. –
Если вы хотите запретить функции изменения аргументов, например const, вы можете использовать модуль 'copy' для объектов, которые вы передаете в качестве аргументов, чтобы вы передавали копию вместо фактического объекта. Хотя, это тоже может ввести в заблуждение. Наверное, лучше всего написать код, который делает именно то, что вы хотите, и написать unittests, чтобы это сделать. – 2010-04-08 22:41:51