мелочи / Конспект Изучаем Питон
.docxОбъект = данные + методы
Модуль – любой файл с исходным текстом на Python и расширением .py .
Содержимое модуля становится доступным внешнему миру через его атрибуты.
Крупные программы обычно организованы в виде множества файлов модулей, которые импортируют (с помощью инструкции import) и используют функциональные возможности из других модулей.
Импорт файла является одним из способов его запуска. Такой способ пригоден только для однократного запуска модуля в течение сеанса. Если все же требуется перезапустить модуль в одном сеансе, можно воспользоваться функцией reload в модуле imp
>>> from imp import reload # В версии 3.0 требуется загрузить функцию
>>> reload(script1)
Модуль – это, главным образом, всего лишь пакет имен переменных, известный как пространство имен. Имена внутри этого пакета называются атрибутами, то есть атрибут – это имя переменной, которая связана с определенным объектом (таким как модуль).
Доступ к атрибуту title можно получить из других программных компонентов двумя разными способами:
-
загрузить модуль целиком с помощью инструкции import, а затем обратиться к атрибуту по его имени, уточнив его именем модуля:
python # Запуск интерпретатора Python
>>> import myfile # Запуск файла; модуль загружается целиком
>>> print(myfile.title) # Имя атрибута, уточненное именем модуля через ‘.’
The Meaning of Life
-
доступ к именам внутри модулей (Фактически создать копии имен) можно получать с помощью инструкции from:
% python # Запуск интерпретатора Python
>>> from myfile import title # Запуск файла; выполняется копирование имен
>>> print(title) # Имя атрибута используется напрямую, уточнение не требуется
The Meaning of Life
При вызове функции dir передается имя импортируемого модуля (в круглых скобках), а возвращает список всех атрибутов, определенных внутри модуля:
>>> dir(threenames)
[‘__builtins__’, ‘__doc__’, ‘__file__’, ‘__name__’, ‘a’, ‘b’, ‘c’]
Вызов встроенной функции exec(open(‘module.py’).read()) – это еще один способ выполнять файлы из интерактивной оболочки, фактически не импортируя модуль. Каждый последующий вызов exec будет выполнять текущую версию файла и ликвидирует необходимость позднее выполнять перезагрузку модуля.
Объекты – это области памяти со значениями и ассоциированными с ними наборами операций
1. Программы делятся на модули.
2. Модули содержат инструкции.
3. Инструкции состоят из выражений.
4. Выражения создают и обрабатывают объекты.
Тип объекта |
Пример литерала/создания |
Числа |
1234, 3.1415, 3+4j, Decimal, Fraction |
Строки |
‘spam’, “guido’s” , b’a\x01c’ |
Списки |
[1, [2, ‘three’], 4] |
Словари |
{‘food’: ‘spam’, ‘taste’: ‘yum’} |
Кортежи |
(1,’spam’, 4, ‘U’) |
Файлы |
myfile = open(‘eggs’, ‘r’) |
Множества |
set(‘abc’), {‘a’, ‘b’, ‘c’} |
Прочие базовые типы |
Сами типы, None, логические значения |
Типы структурных элементов программ |
Функции, модули, классы (часть IV, часть V, часть VI) |
Типы, имеющие отношение к реализации |
Компилированный программный код, стек вызовов (часть IV, часть VII) |
>>> import math
>>> math.pi
3.1415926535897931
>>> math.sqrt(85)
9.2195444572928871
Модуль math содержит математические функции
>>> import random
>>> random.random()
0.59268735266273953
>>> random.choice([1, 2, 3, 4])
1
>>> S = ‘Spam’
>>> len(S) # Длина
4
>>> S[0] # Первый элемент в S, счет начинается с позиции 0
‘S’
>>> S[-1] # Последний элемент в конце S
‘m’
>>> S[-2] # Второй элемент с конца
‘a’
отрицательные индексы просто складываются с длиной строки
>>> S[-1] # Последний элемент в S
‘m’
>>> S[len(S)-1] # Отрицательная индексация, более сложный способ
‘m’
>>> S # Строка из 4 символов
‘Spam’
>>> S[1:3] # Срез строки S начиная со смещения 1 и до 2 (не 3)
‘pa’