Урок 19. Зони видимості та модулі

Local Scope (локальна зона чи область видимості)

У Python “local scope” (локальна область видимості) відноситься до контексту, в якому змінні визначені всередині функції або блоку коду. Це означає, що змінні, оголошені всередині функції, доступні тільки в цій функції і не можуть бути використані за її межами. Приклад з відео:

#Змінна доступна лише в регіоні, де вона створена.
#Це називається областю видимості.
#Змінна, створена всередині функції, 
#належить до локальної області
#цієї функції та може використовуватися 
#лише всередині цієї функції.
def displayCar():
    car = "Dodge"
    print(car)
    
displayCar()
#print(car)

Приклад з функцією всередині функції:

#змінна, яка знаходиться всередині функції, 
#недоступна ззовні функції, але 
#вона доступна для будь-якої функції 
#всередині функції
def displayCar():
    car = "Dodge"
    def printCar():
        print(car)
    printCar()
    
displayCar()
#print(car)

Global Scope (глобальна область чи зона видимості)

У Python “global scope” (глобальна область видимості) відноситься до контексту, в якому змінні визначені на верхньому рівні програми, тобто поза всіма функціями або класами. Ці змінні доступні з будь-якої частини коду, включаючи всередині функцій, якщо не перекриваються локальними змінними з однаковими іменами. Приклад з відео:

#Змінна, створена в основному тексті 
#коду Python, є глобальною змінною
#і належить до глобальної області видимості.
#Глобальні змінні доступні з будь-якої області, 
#глобальної та локальної.
car = "Dodge"

def printCar():
    print(car)
    
printCar()
print(car)

Назви змінних та області видимості

У Python змінні можуть мати різні області видимості, які визначають, де ці змінні доступні в коді. Приклад з відео:

#Якщо ви працюєте з однаковою назвою 
#змінної всередині та поза функцією,
#Python розглядатиме їх як дві окремі змінні
car = "Dodge"

def displayCar():
    car = "Lincoln"
    print(car)
    
displayCar()
print(car)

Ключове слово global

Ключове слово global в Python використовується для оголошення, що змінна є глобальною, що дозволяє змінювати її значення всередині функції. За замовчуванням, якщо ви оголошуєте змінну всередині функції, Python вважає її локальною. Використання global дозволяє уникнути конфліктів між локальними та глобальними змінними. Приклад з відео:

#Ключове слово "global" робить 
#змінну глобальною.
car = "Dodge"

def displayCar():
    global car
    car = "Lincoln"
    print(car)

print(car)    
displayCar()
print(car)

Імпортування модулів

Імпортування модулів в Python дозволяє використовувати функції, класи та змінні, які визначені в інших файлах (модулях). Це важлива частина організації коду, оскільки допомагає зберігати код чистим. В прикладі з відео ми створили модуль moduleDisplayCar, який має лише одну функцію displayCar, імпортуємо цей модуль та надаємо йому псевдонім mdc:

#Ми можемо використовувати модуль, 
#який ми щойно створили, 
#використовуючи оператор «import».
import moduleDisplayCar as mdc

mdc.displayCar()

Код модуля moduleDisplayCar:

#Вважайте модуль таким же, як бібліотека коду.
#Файл, що містить набір функцій, 
#які ви хочете включити у свою програму.

def displayCar():
    car = "Dodge"
    print(car)

Вбудовані модулі

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

#Вбудовані модулі в Python
import platform

platformInfo = platform.system()
print(platformInfo)

platformFunctionsList = dir(platform)
for i in platformFunctionsList:
    print(i)

Імпортування частини модуля

В Python можна імпортувати частини модуля, використовуючи конструкцію from … import …. Це дозволяє вам вибрати конкретні функції, класи або змінні з модуля, що може зменшити використання пам’яті і підвищити читабельність коду. Приклад з відео:

#імпортуємо окрему функцію 
#з модуля moduleCalc
from moduleCalc import divideNumbers

divideNumbers(10,0)

Файл moduleCalc з якого імпортуємо одну функцію divideNumbers:

#модуль з кількома арифметичними функціями
def addNumbers(num1, num2):
    return num1 + num2

def substractNumbers(num1, num2):
    return num1 - num2

def multiplyNumbers(num1, num2):
    return num1*num2

def divideNumbers(num1, num2):
    try:
        return num1/num2
    except ZeroDivisionError:
        print("You can't divide by zero.")
Урок 19. Зони видимості та модулі

В цьому відео поговоримо про:
00:15 Local Scope – Локальна зона видимості
04:18 Function inside Function – Функція всередині функції
09:45 Global Scope – Глобальна зона видимості
12:12 Names of variables and scope – Імена змінних і зона видимості
14:25 Global keyword – Ключове слово global
18:49 Import modules – Імпортування модулів
21:33 Built-in Modules – Вбудовані модулі
24:22 Import part of module – Імпортування частини модуля

Приклади на Github

Leave a Reply

Your email address will not be published. Required fields are marked *