п.5.3. Модулі

Views:
 
Category: Education
     
 

Presentation Description

Python. Тема 5. Функції користувача і модулі

Comments

Presentation Transcript

Запитання для перевірки знань:

Профільна інформатика 10 клас Тема 5. Функції користувача і модулі мови Python

Запитання для перевірки знань:

п.5. 3 . Модулі

Запитання для перевірки знань:

Мотивація навчання Які переваги, на вашу думку, надає модульний принцип будови програмного коду? Iз якими модулями стандартної бібліотеки мови Python ви вже стикалися? У модулі визначаються імена (функції, змінні тощо), які називають атрибутами модулів . Вони стають доступними іншим модулям після їх імпортування. Навіть у тому випадку, коли вдається програму логічно оформити в одному модулі, часто доводиться використовувати в ньому вже наявні модулі, зокрема модулі стандартної бібліотеки.

Запитання для перевірки знань:

Модулі Ми вже розглядали загальну структуру програми мовою Python , яка складалася з кількох файлів. Кожен файл є модулем. Використовувалися окремі модулі зі стандартної бібліотеки, але сутність процесів імпортування модулів не описувалася. Програма мовою Python складається зі множини текстових файлів. Один із файлів програми є головним, до нього підключаються (імпортуються) додаткові файли, тобто модулі .

Запитання для перевірки знань:

Запуск модулів Програма запускається з головного файла , який і визначає порядок виконання інших модулів. Файли модулів містять компоненти, які використовує головний файл, а модулі використовують компоненти, що визначені в інших модулях. Але для того щоб їх використати, ці модулі слід імпортувати. Розглянемо сутність імпортування модулів і використання їх компонентів на прикладі структури найпростішої програми. Головний Модуль файл Структура найпростішої програми

Запитання для перевірки знань:

Модулі Із рисунка видно, що програма складається з модуля головного файла ( а.ру ), додаткового модуля ( b. ру ) і модулів стандартної бібліотеки . Припустимо , що в модулі b. ру визначена функція без параметрів funct_1 ( У цьому випадку ця функція є атрибутом модуля b. ру ): def funct_1(): y = 7.7/3.2 print(y)

Запитання для перевірки знань:

Імпортування модуля Імпортування модуля реалізується інструкцією import < ім'я модуля>. За допомогою однієї інструкції import можна імпортувати кілька модулів , наприклад , імпортувати модулі math i random можна за допомогою інструкції : import math, random Після імпортування модуля можна отримати доступ до його атрибутів , які відокремлюються від назви модуля крапкою , наприклад , math.pi : >>> import math >>> math.pi 3.141592653589793

Запитання для перевірки знань:

Атрибути в модулі Якщо атрибут не знайдено , генерується виняток AttributeError . Для того щоб цей виняток не генерувався , можна у функції getattr () указати значення за замовчуванням , наприклад : >> > import math >>> print( getattr (math, "ant", ” Відсутній ” )) Відсутній Перевірити наявність атрибута в модулі можна за допомогою функції hasattr ( модуль, назва атрибута). Якщо атрибут існує , повертається значення Т rue. >>> import math >>> hasattr (math, «pi») True

Запитання для перевірки знань:

Використання функцій в модулі Для того щоб функцію funct_l можна було використовувати в модулі а.ру , спочатку необхідно імпортувати модуль b. ру до модуля а.ру , а потім можна її використовувати за допомогою інструкції b.funct_1(). Значення атрибута модуля можна отримати також за допомогою функції getattr () з a його назвою . Функція має такий формат: getattr ( модуль, назва атрибута [, значення за замовчуванням ]): >>> import math >>> prlnt ( getattr (math, "pi")) 3.141592653589793

Запитання для перевірки знань:

Псевдонім Інколи доцільно користуватися не іменем модуля, a його псевдонімом . Наприклад , псевдоніми доцільно застосовувати , якщо ім'я модуля довге . Але якщо o голошено псевдонім модуля, то після цього іменем модуля користуватися не можна . Псевдонім указується в інструкції імпортування модуля за такою структурою: as < ім’я модуля>: >>> import math as p >>> print( p.pi ) 3.141592653589793

Запитання для перевірки знань:

Імпортування ідентифікаторів Якщо в програму необхідно імпортувати не весь модуль, а лише окремі його ідентифікатори , то можна скористатися інструкцією from. Один із можливих її форматів є таким: from < ім'я модуля> import < ідентифікатор1> [ as < псевдонім1>] [,...,< ідентифікат o р N> [as < псевдонім N>]]

Запитання для перевірки знань:

Стандартна бібліотека Python Стандартна бібліотека Python містить колекцію майже з 200 різноманітних модулів , які забезпечують незалежну платформу підтримки багатьох задач програмування ( пошук за шаблоном, створення графічного інтерфейсу й ін .). На цьому етапі нам потрібні лише модулі math i random, модуль sys, що містить інформацію про середовище виконання програм інтерфейсу Python.

Запитання для перевірки знань:

Інструкції import і from Приклад. >>> from random import randint . uniform as un # імпортування двох функцій >>> print( randint (2, 10)) # звернення до функції randint 3 >>> print(un(1, 9)) # звернення до функції uniform через псевдонім 1.207729134588777 Із наведеного прикладу видно, що різниця між інструкціями import і from полягає також і в порядку звернення до атрибутів імпортованих модулів . Якщо імпортування модуля виконується за допомогою інструкції import, для звернення до його атрибутів необхідно вказувати через крапку ім'я цього модуля , наприклад , math.pi . Якщо ж імпортування здійснюється за допомогою інструкції from, указувати ім'я модуля не потрібно .

Запитання для перевірки знань:

До уваги! Відзначимо також , що в процесі першого запуску програми під час виконання інструкції імпортування модуля спочатку здійснюється його пошук , потім трансляція в байт-код. Після чого запускається програмний код модуля. Під час наступних запусків ці дії не виконуються , а програмний код модуля просто вибирається з пам'яті . У процесі збереження розроблених файлів програмного коду розширення . ру не застосовувалося . Це пояснюється пише тим , що програми містили лише головні файли програм які не передбачалося імпортувати д o інших модулів . Але для файлів , які планується імпортувати в інші , розширення . ру слід обов'язково вказувати . Такий варіант застосовується для невеликих програм , зокрема для програм навчального призначення , які зберігаються в одній папці . Система в такому разі сама автоматично здійснює їх пошук . Цей варіант вважається стандартним шляхом пошуку файлів . Файли реальних програм можуть зберігатися в різних папках і тому в процесі імпортування необхідно вказувати шлях до кожного з них.

Запитання для перевірки знань:

Застосування пакетів Зазначимо , що в розглянутих прикладах програм використовувалося імпортування окремих модулів і їх атрибутів . Але імпортувати можна також і каталоги, які в мові Python називають пакетами. Найчастіше пакети застосовуються для групування модулів за їх функціональним призначенням . Пакети мають деякі специфічні особливості , характерні для мови Python . Вони застосовуються переважно в професійному програмуванні й тому тут не розглядаються .

Запитання для перевірки знань:

Запитання для перевірки знань