Thông báo: Download 4 khóa học Python từ cơ bản đến nâng cao tại đây.
Tìm hiểu về Enum trong Python
Trong quá trình lập trình, việc sử dụng các giá trị hằng số giúp mã nguồn trở nên dễ hiểu, rõ ràng và hạn chế lỗi phát sinh từ những giá trị thay đổi ngẫu nhiên. Python cung cấp kiểu dữ liệu Enum (viết tắt của "enumeration") như một giải pháp hiệu quả để tạo ra các tập hợp hằng số này. Với Enum, lập trình viên có thể định nghĩa các giá trị cố định theo dạng ký hiệu rõ ràng, dễ quản lý, giúp mã nguồn dễ đọc và tuân thủ nguyên tắc lập trình tốt hơn. Bài viết sau sẽ hướng dẫn cách tạo và sử dụng Enum trong Python, đồng thời cung cấp những ví dụ minh họa để làm sáng tỏ các tính năng cơ bản của nó.
Enum trong Python là gì?
Enum là một kiểu dữ liệu tích hợp trong Python, cho phép bạn tạo một tập hợp các hằng số hữu hạn. Enum có thể được xem là một tập hợp các tên ký hiệu và giá trị đi kèm, có thể được nhập từ module enum
và thường được tạo ra thông qua việc sử dụng lớp (class).
Hãy cùng xem một ví dụ để hiểu cách sử dụng enum
trong Python.
from enum import Enum class Birds(Enum): Crow = 1 Eagle = 2 Hawk = 3 # Hiển thị dưới dạng chuỗi hoặc sử dụng hàm repr print(Birds.Crow) # Output: Birds.Crow print(repr(Birds.Crow)) # Output: <Birds.Crow: 1> # Kiểm tra kiểu dữ liệu của enum print(type(Birds.Crow)) # Output: <enum 'Birds'> # Lấy tên của enum bằng từ khóa `name` print(Birds.Crow.name) # Output: Crow # Lấy giá trị của enum bằng từ khóa `value` print(Birds.Crow.value) # Output: 1
Các tính năng của Enum
- Enum hỗ trợ các thao tác lặp (iteration) nên có thể duyệt qua các thành viên của enum bằng vòng lặp.
- Các giá trị Enum có thể băm (hashable), cho phép sử dụng chúng làm khóa trong dictionary hoặc giá trị trong tập hợp (set).
Ví dụ về việc sử dụng enum để duyệt qua các thành viên:
Bài viết này được đăng tại [free tuts .net]
from enum import Enum class Days(Enum): Monday = 1 Tuesday = 2 Wednesday = 3 Thursday = 4 Friday = 5 Saturday = 6 Sunday = 7 # Lặp qua enum và in ra các thành viên print("Các giá trị Enum là:") for day in Days: print(day) # Output: # Days.Monday # Days.Tuesday # Days.Wednesday # Days.Thursday # Days.Friday # Days.Saturday # Days.Sunday
Sử dụng Enum làm khóa trong Dictionary trong Python
Enum có thể sử dụng làm khóa trong dictionary
vì chúng có thể băm (hashable).
days_dict = {Days.Monday: "Ngày đầu tiên của tuần", Days.Sunday: "Ngày cuối tuần"} print(days_dict) # Output: {Days.Monday: 'Ngày đầu tiên của tuần', Days.Sunday: 'Ngày cuối tuần'} print(days_dict[Days(7)]) # Output: Ngày cuối tuần # Hoặc print(days_dict[Days.Sunday]) # Output: Ngày cuối tuần
So sánh Enum với Toán tử So sánh và Toán tử định danh trong Python
Enum có thể so sánh với nhau bằng toán tử so sánh ==
và toán tử định danh is
.
from enum import Enum class Days(Enum): Monday = 1 Tuesday = 2 Wednesday = 3 # Kiểm tra toán tử so sánh print(Days.Monday == Days.Monday) # Output: True # Kiểm tra toán tử định danh print(Days.Monday is Days.Monday) # Output: True # Không thể so sánh enum với các kiểu dữ liệu khác print(Days.Monday == 1) # Output: False
Kết bài
Enum trong Python là một công cụ hữu ích để tạo các tập hợp hằng số với ý nghĩa biểu tượng rõ ràng, giúp mã dễ đọc và dễ bảo trì hơn. Mình đã tìm hiểu về cách tạo và sử dụng Enum cơ bản trong Python. Để tìm hiểu thêm, bạn có thể tham khảo tài liệu chính thức của Python.