Sử dụng MultivalueEnum để nhận được nhiều giá trị trong Python. Bạn phải cài đặt và nhập thư viện
4 và đây là cách dễ nhất.from enum import Enum
class DType[Enum]:
float32 = "f", 8
double64 = "d", 9
def __new__[cls, *values]:
obj = object.__new__[cls]
# first value is canonical value
obj._value_ = values[0]
for other_value in values[1:]:
cls._value2member_map_[other_value] = obj
obj._all_values = values
return obj
def __repr__[self]:
return '' % [
self.__class__.__name__,
self._name_,
', '.join[[repr[v] for v in self._all_values]],
]
print[DType["f"]]
print[DType[9]]
Mã ví dụ đơn giản.
from aenum import MultiValueEnum
class DType[MultiValueEnum]:
float32 = "f", 8
double64 = "d", 9
print[DType["f"]]
print[DType[9]]
Output::
Cách khác nhận được nhiều giá trị enum
from enum import Enum
class DType[Enum]:
float32 = "f", 8
double64 = "d", 9
def __new__[cls, *values]:
obj = object.__new__[cls]
# first value is canonical value
obj._value_ = values[0]
for other_value in values[1:]:
cls._value2member_map_[other_value] = obj
obj._all_values = values
return obj
def __repr__[self]:
return '' % [
self.__class__.__name__,
self._name_,
', '.join[[repr[v] for v in self._all_values]],
]
print[DType["f"]]
print[DType[9]]
Output::
DType.float32DType.double64
DType.double64
Hãy bình luận nếu bạn có bất kỳ nghi ngờ và đề xuất nào về chủ đề enum Python này.
Lưu ý: IDE: & NBSP; Pycharm & NBSP; 2021.3.3 [Phiên bản cộng đồng] IDE: PyCharm 2021.3.3 [Community Edition]
Windows 10
Python 3.10.1
Tất cả & nbsp; ví dụ python & nbsp; là trong & nbsp; Python & nbsp; 3, vì vậy có thể khác với các phiên bản Python 2 hoặc nâng cấp. Python Examples are in Python 3, so Maybe its different from python 2 or upgraded versions.
Bằng cấp về Khoa học máy tính và Kỹ sư: Nhà phát triển ứng dụng và có nhiều ngôn ngữ lập trình kinh nghiệm. Sự nhiệt tình cho công nghệ và thích học kỹ thuật.
Enum viết tắt của từ enumeration có nghĩa là phép liệt kê, tính năng này xác định một tập hợp các tên được liên kết với các hằng số như số, chuỗi, v.v. Enum rất hữu ích để biểu diễn dữ liệu đại diện cho một tập hợp hữu hạn các trạng thái ví dụ như ngày trong tuần, tháng trong năm, …
from aenum import MultiValueEnum
class DType[MultiValueEnum]:
float32 = "f", 8
double64 = "d", 9
Chúng ta định nghĩa một lớp đơn giản [kế thừa từ Enum] chứa các tháng trong năm. Mỗi tháng được gán một hằng số duy nhất.
>>> DType["f"]
>>> DType[9]
Có một số cách chúng ta có thể làm điều này.
Thêm chỉ dẫn @unique vào trước định nghĩa lớp, đảm bảo rằng các phần tử trùng lặp không tồn tại trong enum.
class DType[Enum]:
float32 = "f", 8
double64 = "d", 9
def __new__[cls, *values]:
obj = object.__new__[cls]
# first value is canonical value
obj._value_ = values[0]
for other_value in values[1:]:
cls._value2member_map_[other_value] = obj
obj._all_values = values
return obj
def __repr__[self]:
return '' % [
self.__class__.__name__,
self._name_,
', '.join[[repr[v] for v in self._all_values]],
]
Chúng ta định nghĩa một lớp đơn giản [kế thừa từ Enum] chứa các tháng trong năm. Mỗi tháng được gán một hằng số duy nhất.
>>> DType["f"]
>>> Dtype[9]
Có một số cách chúng ta có thể làm điều này.
Bài viết này sẽ khám phá tính năng Python enum, một công cụ mạnh mẽ để xử lý các tập dữ liệu không thay đổi.
Nội dung chính ShowShow
- Ví dụ đơn giản
- In ra các thành viên của enum
- Đảm bảo duy nhất
- Một cách khác để tạo một Enum
- Lặp trên phần tử của Enum
- Vòng lặp For
- Thuộc tính __members__
- Giá trị tự động
- Các tài liệu Tham khảo hữu ích
- Phần kết luận
Điều này không chỉ là yếu tố không thể thiếu để phát triển các phần mềm tổng quát mà còn là một công cụ hữu ích để xây dựgn các trò chơi – khiến nó trở thành một kỹ năng và nền tảng quan trọng trong python.
Hãy đi sâu vào và khám phá chủ đề hấp dẫn này!
Điều kiện tiên quyết: Người đọc phải có kiến thức làm việc về ngôn ngữ lập trình Python. Việc làm quen với cách viết các lớp cũng sẽ hữu ích vì các enum được triển khai dưới dạng các lớp Python. Bạn có thể tham khảo thêm khóa học python cơ bản trên unica: Học lập trình python cơ bản thông qua lập trình một game.Học lập trình python cơ bản thông qua lập trình một game.
Enum viết tắt của từ enumeration có nghĩa là phép liệt kê, tính năng này xác định một tập hợp các tên được liên kết với các hằng số như số, chuỗi, v.v. Enum rất hữu ích để biểu diễn dữ liệu đại diện cho một tập hợp hữu hạn các trạng thái ví dụ như ngày trong tuần, tháng trong năm, …
Ví dụ đơn giản
In ra các thành viên của enum
from enum import Enum, unique, Flag
class Months[Enum] :
JANUARY=1
FEBRUARY=2
MARCH = 3
APRIL=4
MAY=5
JUNE=6
JULY=7
AUGUST=8
SEPTEMBER=9
OCTOBER=10
NOVEMBER=11
DECEMBER=12
In ra các thành viên của enum
Đảm bảo duy nhất
# sử dụng chỉ số
>> print [Months[7]]
Months.JULY
# chỉ số bằng tên
>> print [Months['JULY']]
Months.JULY
# thông qua tên
>> print[Months.JULY]
Months.JULY
# thông qua tên
>> print [Months.JULY.name]
JULY
# thông qua giá trị
>> print [Months.JULY.value]
JULY
Đảm bảo duy nhất
Một cách khác để tạo một Enum@unique vào trước định nghĩa lớp, đảm bảo rằng các phần tử trùng lặp không tồn tại trong enum.
Lặp trên phần tử của EnumVòng lặp For
Một cách khác để tạo một Enum
Lặp trên phần tử của Enum
>> quarter1= Enum['Q1', [['January', 1], ['February', 2], ['March', 3]]]
>> print [quarter1[3]]
Q1.March
# có thể viết dưới dạng
>> quarter1= Enum['Q1', ['January February March']]
>> print [quarter1]
# truy cập item
>>> quarter1['January']
>>> Quarter1.March
>>> Quarter1.March.value
3
Lặp trên phần tử của Enum
Vòng lặp For
Thuộc tính __members__
from enum import Enum
class DType[Enum]:
float32 = "f", 8
double64 = "d", 9
def __new__[cls, *values]:
obj = object.__new__[cls]
# first value is canonical value
obj._value_ = values[0]
for other_value in values[1:]:
cls._value2member_map_[other_value] = obj
obj._all_values = values
return obj
def __repr__[self]:
return '' % [
self.__class__.__name__,
self._name_,
', '.join[[repr[v] for v in self._all_values]],
]
print[DType["f"]]
print[DType[9]]
0Thuộc tính __members__
Giá trị tự động
from enum import Enum
class DType[Enum]:
float32 = "f", 8
double64 = "d", 9
def __new__[cls, *values]:
obj = object.__new__[cls]
# first value is canonical value
obj._value_ = values[0]
for other_value in values[1:]:
cls._value2member_map_[other_value] = obj
obj._all_values = values
return obj
def __repr__[self]:
return '' % [
self.__class__.__name__,
self._name_,
', '.join[[repr[v] for v in self._all_values]],
]
print[DType["f"]]
print[DType[9]]
1Giá trị tự động
Các tài liệu Tham khảo hữu ích
from enum import Enum
class DType[Enum]:
float32 = "f", 8
double64 = "d", 9
def __new__[cls, *values]:
obj = object.__new__[cls]
# first value is canonical value
obj._value_ = values[0]
for other_value in values[1:]:
cls._value2member_map_[other_value] = obj
obj._all_values = values
return obj
def __repr__[self]:
return '' % [
self.__class__.__name__,
self._name_,
', '.join[[repr[v] for v in self._all_values]],
]
print[DType["f"]]
print[DType[9]]
2Phần kết luận_generate_next_value_ trong lớp.
from enum import Enum
class DType[Enum]:
float32 = "f", 8
double64 = "d", 9
def __new__[cls, *values]:
obj = object.__new__[cls]
# first value is canonical value
obj._value_ = values[0]
for other_value in values[1:]:
cls._value2member_map_[other_value] = obj
obj._all_values = values
return obj
def __repr__[self]:
return '' % [
self.__class__.__name__,
self._name_,
', '.join[[repr[v] for v in self._all_values]],
]
print[DType["f"]]
print[DType[9]]
3Các tài liệu Tham khảo hữu ích
Phần kết luận
Điều này không chỉ là yếu tố không thể thiếu để phát triển các phần mềm tổng quát mà còn là một công cụ hữu ích để xây dựgn các trò chơi – khiến nó trở thành một kỹ năng và nền tảng quan trọng trong python.
Hãy đi sâu vào và khám phá chủ đề hấp dẫn này!Học lập trình python cơ bản thông qua lập trình một game trên unica.
Điều kiện tiên quyết: Người đọc phải có kiến thức làm việc về ngôn ngữ lập trình Python. Việc làm quen với cách viết các lớp cũng sẽ hữu ích vì các enum được triển khai dưới dạng các lớp Python. Bạn có thể tham khảo thêm khóa học python cơ bản trên unica: Học lập trình python cơ bản thông qua lập trình một game.
Enum viết tắt của từ enumeration có nghĩa là phép liệt kê, tính năng này xác định một tập hợp các tên được liên kết với các hằng số như số, chuỗi, v.v. Enum rất hữu ích để biểu diễn dữ liệu đại diện cho một tập hợp hữu hạn các trạng thái ví dụ như ngày trong tuần, tháng trong năm, …
Phần kết luận
Điều này không chỉ là yếu tố không thể thiếu để phát triển các phần mềm tổng quát mà còn là một công cụ hữu ích để xây dựgn các trò chơi – khiến nó trở thành một kỹ năng và nền tảng quan trọng trong python.
Xem thêm:
- Python Tuple