Выполняемые пользователем функции в python
Я иногда использовал (lambda x:<code>)(<some input>)
в python, чтобы сохранить чистое пространство имен (в глобальном пространстве имен или где-либо еще). Одна проблема с лямбда-решением заключается в том, что это очень ограничивающая конструкция с точки зрения того, что она может содержать.
Примечание. Это привычка программирования javascript.
Является ли это рекомендуемым способом сохранения пространства имен? Если это так, есть ли лучший способ реализовать функцию самоисполнения?
- как правильно установить модули в Pycharm?
- Как изменить строку с помощью рекурсии?
- Python замена NOOP
- Как добавить новую строку в функцию xlsxwritter merge_range в python?
- Преобразование строкового файла в файл формата json
Для функции A, которая будет вызываться только в определенной функции B, вы можете определить A в B, по которой я думаю, что пространство имен не будет загрязнено. например,
Вместо :
def a_fn(): //do something def b_fn(): //do something def c_fn(): b_fn() a_fn()
Ты можешь:
def c_fn(): def a_fn(): //do something def b_fn(): //do something b_fn() a_fn()
Хотя я не уверен, что это путинский путь, я обычно так делаю.
Вы этого не делаете. Это хорошо в JavaScript, но в Python у вас есть либо легкий синтаксис, либо необходимость в нем. Если вам нужна область функций, определите функцию и вызовите ее. Но очень часто вам это не нужно. Вам может потребоваться разделить код на несколько функций, чтобы сделать его более понятным, но тогда имя для него все равно помогает, и оно может быть полезно в нескольких местах.
Кроме того, не беспокойтесь о добавлении еще нескольких имен в пространство имен. Python, в отличие от JavaScript, имеет собственные пространства имен, поэтому помощник, который вы определяете в области модуля, по умолчанию не отображается в других файлах (т. Е. Если не импортирован).
- Могу ли я передать «\ t» на python из командной строки?
- Я не могу отображать текст поверх своего изображения tkinter
- Python: A, b = 1,2 и a = 1; b = 2 строго эквивалентны?
- django 1.5 + ошибка pymysql: ImportError: не может импортировать имя Thing2Literal
- запрос из postgresql с использованием python в качестве словаря
- Как получить последнее сообщение между текущим пользователем и другими?
- API Instagram с использованием Python
- Основной график рассеяния Matplotlib из Pandas DataFrame
- Easy_install и Pip не работают
- Список переменных Python внутри класса
- Python 2.7: len () возвращает неверное значение для строки из файла с символом новой строки