Друкарня від WE.UA

Модуль typing у Python

Модуль typing у Python - це модуль, який дозволяє вказувати типи даних для змінних, аргументів функцій та значень, що повертаються. Він призначений для підтримки статичної типізації та покращення читабельності коду.

Ось деякі типи, методи та класи, які надає модуль typing, та приклади їх використання:

Any: цей тип вказує, що значення може бути будь-якого типу. Він корисний, коли ви не знаєте точного типу даних або хочете дозволити декілька типів. Приклад використання:

from typing import Any

def process_data(data: Any) -> None:

    print(data)

process_data(42)

process_data("Hello, world!")

Union: цей тип дозволяє вказати, що значення може бути одним з декількох типів. Наприклад:

Union[int, float]

означає, що значення може бути або цілим числом, або дійсним числом. Приклад використання:

from typing import Union

def add_numbers(a: Union[int, float], b: Union[int, float]) -> Union[int, float]:

    return a + b

result = add_numbers(1, 2.5)

print(result)

Optional: цей тип використовується для вказівки на те, що значення може бути None, крім вказаного типу. Наприклад:

Optional[int]

означає, що значення може бути або цілим числом, або None. Приклад використання:

from typing import Optional

def find_index(numbers: List[int], target: int) -> Optional[int]:

    if target in numbers:

        return numbers.index(target)

    return None

index = find_index([1, 2, 3], 2)

print(index)

List, Tuple, Set, Dict: ці типи дозволяють вказувати типи елементів колекцій. Наприклад:

List[int]

означає список цілих чисел, а

Dict[str, int] 

означає словник, де ключі - рядки, а значення - цілі числа. Приклад використання:

from typing import List, Tuple, Set, Dict

def process_collections(numbers: List[int], coordinates: Tuple[float, float], names: Set[str], ages: Dict[str, int]) -> None:

    print(numbers)

    print(coordinates)

    print(names)

    print(ages)

process_collections([1, 2, 3], (1.0, 2.0), {"Alice", "Bob"}, {"Alice": 30, "Bob": 25})

Callable: цей тип використовується для вказівки на функції або методи. Він приймає два аргументи: список типів аргументів функції та тип значення, що повертається. Наприклад:

Callable[[int, int], int] 

означає функцію, яка приймає два цілих числа та повертає ціле число. Приклад використання:

from typing import Callable

def apply_function(func: Callable[[int, int], int], a: int, b: int) -> int:

    return func(a, b)

def add(a: int, b: int) -> int:

    return a + b

result = apply_function(add, 1, 2)

print(result)

TypeVar: цей тип дозволяє визначати власні типи змінних, які можуть бути використані для створення універсальних функцій або класів. Приклад використання:

from typing import TypeVar, List

T = TypeVar("T")

def reverse_list(items: List[T]) -> List[T]:

    return items[::-1]

reversed_integers = reverse_list([1, 2, 3])

reversed_strings = reverse_list(["a", "b", "c"])

print(reversed_integers)

print(reversed_strings)

NewType: цей тип дозволяє створювати нові типи даних на основі існуючих типів, але з різною семантикою. Наприклад, ви можете створити новий тип UserId на основі int, але з різною семантикою. Приклад використання:

from typing import NewType

UserId = NewType("UserId", int)

def get_user_name(user_id: UserId) -> str:

    return f"User {user_id}"

user_id = UserId(42)

print(get_user_name(user_id))

TypedDict: цей тип дозволяє вказувати типи значень для ключів словника. Наприклад:

TypedDict("Person", {"name": str, "age": int})

означає словник з ключами "name" та "age", де значення "name" - рядок, а значення "age" - ціле число. Приклад використання:

from typing import TypedDict

class Person(TypedDict):

    name: str

    age: int

def print_person(person: Person) -> None:

    print(f"{person['name']} is {person['age']} years old")

person: Person = {"name": "Alice", "age": 30}

print_person(person)

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

from typing import Protocol

class Drawable(Protocol):

    def draw(self) -> None:

        ...

class Circle:

    def draw(self) -> None:

        print("Drawing a circle")

def draw_shape(shape: Drawable) -> None:

    shape.draw()

circle = Circle()

draw_shape(circle)

Literal: цей тип дозволяє вказувати конкретні значення, які можуть бути прийняті або повернуті функцією. Наприклад:

Literal["red", "green", "blue"]

означає, що значення може бути одним з рядків "red", "green" або "blue". Приклад використання:

from typing import Literal

def print_color(color: Literal["red", "green", "blue"]) -> None:

    print(f"The color is {color}")

print_color("red")

Висновок


Модуль typing у Python дозволяє вказувати типи даних для змінних, аргументів функцій та значень, що повертаються, що полегшує розуміння коду та підтримку статичної типізації.

Статті про вітчизняний бізнес та цікавих людей:

  • Шлейф сучасного смартфону та його призначення

    Шлейф - це тонка пластикова стрічка з ледь видимими доріжками і саме вона зʼєднує важливі компоненти мобільного, без яких він не запрацює. Власники пристроїв Xiaomi, які стикаються з потребою заміни цієї деталі, можуть підібрати відповідний варіант на сайті AKS.UA

    Теми цього довгочиту:

    Шлейф Для Мобільного
  • Чохли для iPhone 15: повний гід по кольорах, матеріалах і виробниках

    Перед тим як вибрати чохли для iPhone 15, варто визначитися, що саме ви хочете отримати від аксесуара. Комусь потрібен тонкий прозорий корпус, інший покупець шукає посилений захист, а для когось вирішальним стане колір або підтримка MagSafe

    Теми цього довгочиту:

    Чохли Для Iphone
  • Як побудована програма Meest China Academy

    Курс про товарний бізнес охоплює різні етапи роботи: від пошуку ідеї до перевірки товару, логістики та масштабування. Програма Meest China Academy містить 17 модулів, які послідовно розкривають ці теми без зведення всього навчання до однієї універсальної поради.

    Теми цього довгочиту:

    Meest
  • Які технології використані в Айфон 17

    Айфон 17 поєднує OLED-дисплей із частотою до 120 Гц, чип A19, дві камери Fusion 48 Мп і швидке заряджання через USB-C. У COMFY можна купити Айфон 17 з накопичувачем на 256 або 512 ГБ, вибравши конфігурацію відповідно до обсягу фото, відео та застосунків

    Теми цього довгочиту:

    Iphone 17
  • Як вибрати вживаний iPhone: коротке керівництво для розумної покупки

    Вторинний ринок смартфонів Apple активно зростає, і питання, як вибрати вживаний iPhone, стає актуальним для дедалі більшої кількості користувачів. Правильний підхід дозволяє отримати бу iPhone з актуальною iOS і доброю камерою за помітно нижчу ціну, ніж у нових пристроїв.

    Теми цього довгочиту:

    Iphone
Поділись своїми ідеями в новій публікації.
Ми чекаємо саме на твій довгочит!
Д
Дмитро@dmytro2

11Довгочити
2.6KПерегляди
13Підписники
На Друкарні з 28 квітня 2023

Більше від автора

Це також може зацікавити:

Коментарі (0)

Підтримайте автора першим.
Напишіть коментар!

Це також може зацікавити: