Nhảy đến nội dung chính

Union (hoặc | từ Python 3.10+)

ChoUnion cho phép một biến hoặc một tham số có thể có nhiều kiểu:u giá trị.

Nó đến từ module typing, và được dùng nhiều trong type hinting để mô tả biến có thể là kiểu A hoặc kiểu B.

from typing import Union

def process(value:func(x: Union[int, str]):
    ...

Từ Python 3.10 trở lên, bạn có thể dùng cú pháp ngắn hơn:

def func(x: int | str):
    ...

Ví dụ thực tế: Gửi thông báo

from typing import Union

def send_notification(user: Union[int, str]):
    if isinstance(user, int):
        print(f"Gửi thông báo đến user ID: {user}")
    elif isinstance(user, str):
        print(f"Gửi thông báo đến username: {user}")
    else:
        print("Kiểu dữ liệu không hợp lệ")

Giải thích:

  • user có thể là int (ID người dùng) hoặc str (username).

  • Hàm sẽ xử lý tùy theo kiểu dữ liệu được truyền vào.

send_notification(101)      # Gửi thông báo đến user ID: 101
send_notification("alice")  # Gửi thông báo đến username: alice