Язык программирования Python - [10]
>as
. В первом случае пространство имен модуля остается в отдельном имени и для доступа к конкретному имени из модуля нужно применять точку. Во втором случае имена используются так, как если бы они были определены в текущем модуле:>os.system("dir")
>digits = re.compile("\d+")
>print argv[0], environ
Повторный импорт модуля происходит гораздо быстрее, так как модули кэшируются интерпретатором. Загруженный модуль можно загрузить еще раз (например, если модуль изменился на диске) с помощью функции >reload()
:
>import mymodule
>...
>reload(mymodule)
Однако в этом случае все объекты, являющиеся экземплярами классов из старого варианта модуля, не изменят своего поведения.
При работе с модулями есть и другие тонкости. Например, сам процесс импорта модуля можно переопределить. Подробнее об этом можно узнать в оригинальной документации.
Встроенные функции
В среде Python без дополнительных операций импорта доступно более сотни встроенных объектов, в основном, функций и исключений. Для удобства функции условно разделены по категориям:
1. Функции преобразования типов и классы: >coerce
, >str
, >repr
, >int
, >list
, >tuple
, >long
, >float
, >complex
, >dict
, >super
, >file
, >bool
, >object
2. Числовые и строковые функции: >abs
, >divmod
, >ord
, >pow
, >len
, >chr
, >unichr
, >hex
, >oct
, >cmp
, >round
, >unicode
3. Функции обработки данных: >apply
, >map
, >filter
, >reduce
, >zip
, >range
, >xrange
, >max
, >min
, >iter
, >enumerate
, >sum
4. Функции определения свойств: >hash
, >id
, >callable
, >issubclass
, >isinstance
, >type
5. Функции для доступа к внутренним структурам: >locals
, >globals
, >vars
, >intern
, >dir
6. Функции компиляции и исполнения: >eval
, >execfile
, >reload
, >__import__
, >compile
7. Функции ввода–вывода: >input
, >raw_input
, >open
8. Функции для работы с атрибутами: >getattr
, >setattr
, >delattr
, >hasattr
9. Функции-«украшатели» методов классов: >staticmethod
, >classmethod
, >property
10. Прочие функции: >buffer
, >slice
Уточнить назначение функции, ее аргументов и результата можно в интерактивной сессии интерпретатора Python:
>>>> help(len)
>Help on built–in function len:
>len(...)
>len(object) -> integer
>Return the number of items of a sequence or mapping.
Или так:
>>>> print len.__doc__
>len(object) -> integer
>Return the number of items of a sequence or mapping.
Функции преобразования типов и классы
Функции и классы из этой категории служат для преобразования типов данных. В старых версиях Python для преобразования к нужному типу использовалась одноименная функция. В новых версиях Python роль таких функций играют имена встроенных классов (однако семантика не изменилась). Для понимания сути достаточно небольшого примера:
>>>> int(23.5)
>23
>>>> float('12.345')
>12.345000000000001
>>>> dict([('a', 2), ('b', 3)])
>{'a': 2, 'b': 3}
>>>> object
>
>>>> class MyObject(object):
>... pass
>...
Числовые и строковые функции
Функции работают с числовыми или строковыми аргументами. В следующей таблице даны описания этих функций.
>abs(x) | Модуль числа >x . Результат: >|x| . |
>divmod(x, y) | Частное и остаток от деления. Результат: (частное, остаток). |
>pow(x, y[, m]) | Возведение >x в степень >y по модулю >m . Результат: >x**y % m . |
>round(n[, z]) | Округление чисел до заданного знака после (или до) точки. |
>ord(s) | Функция возвращает код (или Unicode) заданного ей символа в односимвольной строке. |
>chr(n) | Возвращает строку с символом с заданным кодом. |
>len(s) | Возвращает число элементов последовательности или отображения. |
>oct(n) , >hex(n) | Функции возвращают строку с восьмеричным или шестнадцатеричным представлением целого числа >n . |
>cmp(x, y) | Сравнение двух значений. Результат: отрицательный, ноль или положительный, в зависимости от результата сравнения. |
>unichr(n) | Возвращает односимвольную Unicode–строку с символом с кодом n. |
>unicode(s, [, encoding[, errors]]) | Создает Unicode–объект, соответствующий строке >s в заданной кодировке encoding. Ошибки кодирования обрабатываются в соответствии с >errors , который может принимать значения: >'strict' (строгое преобразование), >'replace' (с заменой несуществующих символов) или >'ignore' (игнорировать несуществующие символы). По умолчанию: >encoding='utf–8', errors='strict' . |
Следующий пример строит таблицу кодировки кириллических букв в Unicode:
>print "Таблица Unicode (русские буквы)".center(18*4)
>i = 0
>for c in "АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ"\
> "абвгдежзийклмнопрстуфхцчшщъыьэюя":
> u = unicode(c, 'koi8–r')
> print "%3i: %1s %s" % (ord(u), c, `u`),
> i += 1
> if i % 4 == 0:
> print
Функции обработки данных
Эти функции подробнее будут рассмотрены в лекции по функциональному программированию. Пример с функциями >range()
и >enumerate()
:
>>>> for i, c in enumerate("ABC"):
>... print i, c
>...
>0 A
>1 B
>2 C
>>>> print range(4, 20, 2)
>[4, 6, 8, 10, 12, 14, 16, 18]
Функции определения свойств
Эти функции обеспечивают доступ к некоторым встроенным атрибутам объектов и другим свойствам. Следующий пример показывает некоторые из этих функций:
>>>> s = "abcde"
>>>> s1 = "abcde"
>>>> s2 = "ab" + "cde"
>>>> print "hash:", hash(s), hash(s1), hash(s2)
>hash: — 1332677140–1332677140–1332677140
>>>> print "id:", id(s), id(s1), id(s2)
Разработчику часто требуется много сторонних инструментов, чтобы создавать и поддерживать проект. Система Git — один из таких инструментов и используется для контроля промежуточных версий вашего приложения, позволяя вам исправлять ошибки, откатывать к старой версии, разрабатывать проект в команде и сливать его потом. В книге вы узнаете об основах работы с Git: установка, ключевые команды, gitHub и многое другое.В книге рассматриваются следующие темы:основы Git;ветвление в Git;Git на сервере;распределённый Git;GitHub;инструменты Git;настройка Git;Git и другие системы контроля версий.
Рассмотрено все необходимое для разработки, компиляции, отладки и запуска приложений Java. Изложены практические приемы использования как традиционных, так и новейших конструкций объектно-ориентированного языка Java, графической библиотеки классов Swing, расширенной библиотеки Java 2D, работа со звуком, печать, способы русификации программ. Приведено полное описание нововведений Java SE 7: двоичная запись чисел, строковые варианты разветвлений, "ромбовидный оператор", NIO2, новые средства многопоточности и др.
В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.
В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.
В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.
Python - объектно-ориентированный язык сверхвысокого уровня. Python, в отличии от Java, не требует исключительно объектной ориентированности, но классы в Python так просто изучить и так удобно использовать, что даже новые и неискушенные пользователи быстро переходят на ОО-подход.