Оболочка Python — довольно удобная штука для тестирования и изучения возможностей языка, кто-то даже использует ее как калькулятор (что, кстати, очень удобно).
В этой серии статей мне хотелось бы поговорить об IPython — замене стандартной оболочки Python, предоставляющей расширенный список возможностей, делающий работу с ним более эффективной.
Вы можете загрузить и установить IPython с сайта Официальный веб-сайт
Пространство имен
Запускаем оболочку IPython командой 'ipython', так как в стандартной оболочке Python мы можем присваивать значения переменным:При входе можно использовать автозаполнение, например набрав msg и нажав Tab, мы получим возможные варианты:In [1]: msgflag = 1 In [2]: pi = 3 In [3]: msg = "hello" In [4]: warning = None
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-
Обзор Blackberry Playbook
19 Oct, 24 -
Загрузка Музыки С Myspace
19 Oct, 24 -
Ависосмс. Мы Открыли!
19 Oct, 24