Hướng dẫn should i use enum in python? - tôi có nên sử dụng enum trong python không?
Loại enum đã vào Python thông qua PEP 435. Lý do được đưa ra là: Show
Khi sử dụng số và chuỗi cho mục đích này, chúng có thể được đặc trưng là "số ma thuật" hoặc "chuỗi ma thuật". Những con số hiếm khi mang theo chúng là ngữ nghĩa, và dây dễ bị nhầm lẫn (viết hoa? Ngày trong tuần và các lớp thư của trường là ví dụ về loại bộ sưu tập giá trị này. Đây là một ví dụ từ các tài liệu:
Giống như lớp trần, điều này dễ đọc và thanh lịch hơn nhiều so với ví dụ được đặt tên, nó cũng không thay đổi, và nó có thêm lợi ích như chúng ta sẽ thấy dưới đây. Thống lĩnh nghiêm ngặt: loại thành viên enum là enum
Điều này cho phép bạn xác định chức năng trên các thành viên trong định nghĩa enum. Xác định chức năng trên các giá trị có thể được thực hiện bằng các phương pháp trước đó, nhưng nó sẽ rất không phù hợp. Cải thiện: cưỡng chế chuỗiBiểu diễn chuỗi có thể đọc được của con người, trong khi repr có thêm thông tin:
Tôi thấy đây là một sự cải thiện so với các số ma thuật và thậm chí có thể tốt hơn các chuỗi từ tên gọi. Lặp đi lặp lại (tương đương):Enum hỗ trợ lặp lại (như tên được đặt tên, nhưng không quá nhiều lớp trần) cũng vậy:
Thuộc tính 1 là một ánh xạ theo thứ tự các tên của các enum cho các đối tượng enum tương ứng của chúng (tương tự như hàm 2 của tên gọi).
Được hỗ trợ bởi Pickle (Parity)Bạn có thể tuần tự hóa và giải phóng enum (trong trường hợp bất cứ ai lo lắng về điều này):
Cải thiện: Bí danhĐây là một tính năng hay mà lớp học không có, và sẽ rất khó để nói bí danh ở đó trong 3.
Bí danh xuất hiện theo tên kinh điển, nhưng cả hai đều giống nhau:
Nếu các bí danh nên bị cấm để tránh va chạm giá trị, hãy sử dụng trình trang trí 4 (một tính năng chiếm ưu thế).Thống lĩnh nghiêm ngặt: So sánh được thực hiện với >>> type(Color.red)
|