Понимание доступных синтаксисов функций стрелок даст вам представление о том, какое поведение они представляют, когда «прикован», как в приведенных вами примерах.
Когда функция стрелки записывается без блочных фигурных скобок, с или без нескольких параметров, выражение, которое составляет тело функции, является неявным возвращенным. В вашем примере это выражение является другой функцией стрелки.
No arrow funcs Implicitly return `e=>{…}` Explicitly return `e=>{…}`
---------------------------------------------------------------------------------
function (field) { | field => e => { | field => {
return function (e) { | | return e => {
e.preventDefault() | e.preventDefault() | e.preventDefault()
} | | }
} | } | }
Еще одно преимущество написания анонимных функций с использованием синтаксиса стрелок состоит в том, что они связаны лексически с областью, в которой они определены. Из «Функции стрелок» на MDN :
Выражение функции стрелки имеет более короткий синтаксис по сравнению с функциональными выражениями и лексически связывает это значение . Функции стрелки всегда анонимные .
Это особенно уместно в вашем примере, учитывая, что оно берется из приложения reactjs . Как указано в @naomik, в React вы часто обращаетесь к функциям члена компонента , используя
this
. Например:Unbound Explicitly bound Implicitly bound ------------------------------------------------------------------------------ function (field) { | function (field) { | field => e => { return function (e) { | return function (e) { | this.setState(...) | this.setState(...) | this.setState(...) } | }.bind(this) | } | }.bind(this) | }
Вы можете использовать модуль os
.
>>> import os
>>> os.getcwd()
'/home/user'
>>> os.chdir("/tmp/")
>>> os.getcwd()
'/tmp'
Но если речь идет о поиске других модулей: вы можете установить переменную среды, называемую PYTHONPATH
, под Linux будет как
export PYTHONPATH=/path/to/my/library:$PYTHONPATH
Затем интерпретатор также ищет это место для модулей import
ed.
edit
В Windows:
set PYTHONPATH=%PYTHONPATH%;C:\My_python_lib
(снято из http://docs.python.org/using/windows.html )
edit 2
... и даже лучше: используйте virtualenv
и virtualenv_wrapper
, это позволит вам создать среду разработки, в которой вы можете добавлять пути к модулю по своему усмотрению (add2virtualenv
) без загрязнения вашей установки или «нормальной» рабочей среды.
http://virtualenvwrapper.readthedocs.org/en/latest/command_ref.html
Если вы import os
, вы можете использовать os.getcwd
для получения текущего рабочего каталога, и вы можете использовать os.chdir
для изменения своего каталога
Самый простой способ изменить текущий рабочий каталог на python - использовать пакет «os». Ниже приведен пример для компьютера Windows:
#import the os package
import os
# Confirm the current working directory
os.getcwd()
# use '\\' while chaning the directory
os.chdir("C:\\user\\foldername")
os.chdir('C:/Users/Ajeya/Documents')
, либо os.chdir('C:\\Users\\Ajeya\\Documents')
, либо os.chdir(r'C:\Users\Ajeya\Documents')
.
– Charles Duffy
13 October 2017 в 19:31
os.getcwd()
только для целей отладки, чтобы мы могли видеть, что представляет собой рабочий каталог, прежде чем мы его изменим. Код для фактического изменения cwd
- это просто os.chdir('..')
– Toothpick Anemone
21 March 2018 в 22:18
Изменение текущего каталога не является способом поиска модулей в Python.
Скорее, см. документы для Путь поиска модуля для того, как Python находит, какой модуль import.
Вот соответствующий бит из секции Standard Modules :
Переменная sys.path представляет собой список строк, который определяет интерпретатор путь поиска для модулей. Он инициализируется путём по умолчанию, взятым из переменной окружения PYTHONPATH или из встроенного значения по умолчанию, если PYTHONPATH не установлен. Вы можете изменить его, используя стандартные операции с списком:
blockquote>>>> import sys
>>> sys.path.append('/ufs/guido/lib/python')
В ответ на ваш исходный вопрос о получении и настройке текущего каталога:
>>> help(os.getcwd) getcwd(...) getcwd() -> path Return a string representing the current working directory. >>> help(os.chdir) chdir(...) chdir(path) Change the current working directory to the specified path.
>>> import os
>>> os.system('cd c:\mydir')
На самом деле, os.system()
может выполнить любую команду, которую может выполнить команда Windows, а не только изменить каталог.
PYTHONPATH
, но обратите внимание, что OP указывает Windows ... – simon 23 November 2011 в 22:13sys.path
внутри вашего скрипта. – Steven Rumbalski 23 November 2011 в 22:31PYTHONPATH
глобально, если у вас установлено более одного Python (или у вас установлены программы, связывающие Python с ними - другими словами, вы никогда не узнаете): он может нарушить установку в таинственные способы – jfs 22 April 2014 в 05:21