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

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

Union cho phép một biến hoặc một tham số có thể có nhiều kiể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 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