Ipython: Замена Стандартной Оболочки Python

Оболочка Python — довольно удобная штука для тестирования и изучения возможностей языка, кто-то даже использует ее как калькулятор (что, кстати, очень удобно).

В этой серии статей мне хотелось бы поговорить об IPython — замене стандартной оболочки Python, предоставляющей расширенный список возможностей, делающий работу с ним более эффективной.

Вы можете загрузить и установить IPython с сайта Официальный веб-сайт



Пространство имен

Запускаем оболочку IPython командой 'ipython', так как в стандартной оболочке Python мы можем присваивать значения переменным:
   

In [1]: msgflag = 1 In [2]: pi = 3 In [3]: msg = "hello" In [4]: warning = None

При входе можно использовать автозаполнение, например набрав msg и нажав Tab, мы получим возможные варианты:

In [5]: msg msg msgflag

Если есть только один вариант, он автоматически появится в поле ввода.

IPython предоставляет возможность использовать пространства имен, например, команда who выводит список доступных переменных:

In [5]: who msg msgflag pi warning

Имеет ряд возможностей, например, для отображения переменных типа int следует написать:

In [6]: who int msgflag pi

Если вам нужно получить дополнительную информацию о переменных, вы можете использовать команду whos:

In [7]: whos Variable Type Data/Info -------------------------------- msg str hello msgflag int 1 pi int 3 warning NoneType None

Также возможен поиск по имени переменной; для этого используйте команду psearch:

In [8]: psearch msg* msg msgflag

Есть возможность расширить критерии поиска по типу переменной, например:

In [9]: psearch msg* int msgflag

Для того, чтобы сохранить переменную в профиле (она будет доступна после перезапуска IPython), есть команда store:

In [10]: store msgflag Stored 'msgflag' (int)

Также возможно сохранить переменную в отдельный файл:

In [11]: store msgflag > /tmp/m.txt Writing 'msgflag' (int) to file '/tmp/m.txt'.



Для просмотра сохраненных переменных введите команду store без параметров:

In [12]: store Stored variables and their in-db values: msgflag -> 1

Чтобы очистить текущее пространство имен, используйте команду «reset» и убедитесь, что оно очищено с помощью команды «who»:

In [13]: reset Once deleted, variables cannot be recovered. Proceed (y/[n])? y In [14]: who Interactive namespace is empty.

Вы можете восстановить ранее сохраненные переменные с помощью команды «store» и гарантировать их восстановление с помощью команды «who»:

In [15]: store -r In [16]: who msgflag

Вы также можете очистить все, что есть в магазине, и при следующем запуске пространство имен будет пустым:

In [17]: store -z



Ведение журнала

Еще одна полезная функция IPython — ведение журнала.

Команда logstate проверяет текущее состояние регистратора:

In [18]: logstate Logging has not been activated.

Вы можете начать ведение журнала с помощью команды logstart:

In [19]: logstart Activating auto-logging. Current session state plus future input saved. Filename : ipython_log.py Mode : rotate Output logging : False Raw input log : False Timestamping : False State : active

Журнал сохраняется в текущем каталоге как исходный код Python. Команды «logon» и «logoff» используются для включения/выключения ведения журнала:

In [20]: logoff Switching logging OFF In [21]: logon Switching logging ON



Магические команды

Описанные выше команды в терминологии IPython называются магическими командами.

Чтобы увидеть полный список магических команд, вам нужно ввести «lsmagic»:

In [22]: lsmagic Available magic functions: %Exit %Pprint %Quit %alias %autocall %autoindent %automagic %bg %bookmark %cd %clear %color_info %colors %cpaste %debug %dhist %dirs %doctest_mode %ed %edit %env %exit %hist %history %logoff %logon %logstart %logstate %logstop %lsmagic %macro %magic %p %page %pdb %pdef %pdoc %pfile %pinfo %popd %profile %prun %psearch %psource %pushd %pwd %pycat %quickref %quit %r %rehash %rehashx %rep %reset %run %runlog %save %sc %store %sx %system_verbose %time %timeit %unalias %upgrade %who %who_ls %whos %xmode Automagic is ON, % prefix NOT needed for magic functions.

Магические команды могут использовать знак процента в качестве префикса.

Это полезно, если имя переменной совпадает с именем команды.

Чтобы вызвать помощь для всех магических команд, используйте команду «магия».

Чтобы получить справку по конкретной магической команде, просто поставьте в конце вопросительный знак:

In [23]: lsmagic? Type: Magic function Base Class: <type 'instancemethod'> String Form: <bound method InteractiveShell.magic_lsmagic of <IPython.iplib.InteractiveShell object at 0x9e5ef0>> Namespace: IPython internal File: /Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/site-packages/ipython-0.9.1-py2.5.egg/IPython/Magic.py Definition: lsmagic(self, parameter_s='') Docstring: List currently available magic functions.

Для получения дополнительной информации введите в конце команды 2 вопросительных знака, в этом случае также отображается исходный код команды функции.

Для переменных, которые вы определяете самостоятельно, вы также можете использовать вопросительный знак:

In [24]: msgflag? Type: int Base Class: <type 'int'> String Form: 1 Namespace: Interactive Docstring: int(x[, base]) -> integer Convert a string or number to an integer, if possible. A floating point argument will be truncated towards zero .





Некоторые «косметические» команды

Вы можете использовать «p» как сокращение от «print»:

In [25]: import sys In [26]: p sys.path ['', '/Library/Frameworks/Python.framework/Versions/2.5/bin', '/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/site-packages/setuptools-0.6c9-py2.5.egg', '/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/site-packages/bdist_mpkg-0.4.3-py2.5.egg', '/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/site-packages/macholib-1.1-py2.5.egg', .



Вы также можете использовать сокращенную форму для вызова функций:

In [27]: def x(a, b): .

: print a, b .

: .

: In [28]: x 3, 4 -------> x(3, 4) 3 4

Чтобы вызвать функцию, вы можете сделать это:

In [29]: def x(): print "123" .

: In [30]: /x -------> x() 123

Вы можете вызвать функцию, которая принимает строки в качестве параметров, не заключая их в кавычки:

In [31]: def x(a,b): print "%s-%s" % (a, b) .

: In [32]: , x astr bstr -------> x("astr", "bstr") astr-bstr



Самоанализ

Если вы забыли, какие аргументы необходимы для вызова функции или метода, вы всегда можете это узнать с помощью команды pdef:

In [37]: import re In [38]: pdef re.match re.match(pattern, string, flags=0)

Вы также можете посмотреть документацию по этой функции:

In [39]: pdoc re.match Class Docstring: Try to apply the pattern at the start of the string, returning a match object, or None if no match was found. Calling Docstring: x.__call__(.

) <==> x(.

)

Всю информацию о функции можно посмотреть с помощью команды 'pinfo':

In [40]: pinfo re.match Type: function Base Class: <type 'function'> String Form: <function match at 0xaa2b70> Namespace: Interactive File: /Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/re.py Definition: re.match(pattern, string, flags=0) Docstring: Try to apply the pattern at the start of the string, returning a match object, or None if no match was found.

Вы также можете посмотреть исходный код функции:

In [41]: psource re.match def match(pattern, string, flags=0): """Try to apply the pattern at the start of the string, returning a match object, or None if no match was found.""" return _compile(pattern, flags).

match(string)

Если вы хотите просмотреть исходный код файла, в котором определен объект, используйте команду pfile:

In [42]: pfile re.match

Вы также можете запустить свой любимый редактор для редактирования файла, в котором определен тот или иной объект:

In [43]: edit -x re.match Editing.



Ссылки на источники

Скринкаст - http://showmedo.com/videos/videoЭname=1000010&fromSeriesID=100 Официальная документация - http://ipython.scipy.org/moin/Documentation PS: На этом пока все, если кому-то интересна эта тема, то в следующих статьях я продолжу описывать возможности IPython. Теги: #ipython #python #python
Вместе с данным постом часто просматривают:

Автор Статьи


Зарегистрирован: 2019-12-10 15:07:06
Баллов опыта: 0
Всего постов на сайте: 0
Всего комментарий на сайте: 0
Dima Manisha

Dima Manisha

Эксперт Wmlog. Профессиональный веб-мастер, SEO-специалист, дизайнер, маркетолог и интернет-предприниматель.