Kiểm tra các giá trị
Biến thể 1
Lưu ý rằng
5 in Fruit._value2member_map_ # True
7 in Fruit._value2member_map_ # False
0 có một thành viên tên là 5 in Fruit._value2member_map_ # True
7 in Fruit._value2member_map_ # False
1 [không có giấy tờ và có thể được thay đổi/loại bỏ trong các phiên bản Python trong tương lai]:print[Fruit._value2member_map_]
# {4: , 5: , 6: }
Bạn có thể kiểm tra xem một giá trị nằm trong
5 in Fruit._value2member_map_ # True
7 in Fruit._value2member_map_ # False
0 của bạn so với bản đồ này:5 in Fruit._value2member_map_ # True
7 in Fruit._value2member_map_ # False
Biến thể 2
Nếu bạn không muốn dựa vào tính năng này thì đây là một giải pháp thay thế:
values = [item.value for item in Fruit] # [4, 5, 6]
hoặc [có thể tốt hơn]: sử dụng
5 in Fruit._value2member_map_ # True
7 in Fruit._value2member_map_ # False
3; Nhà điều hành 5 in Fruit._value2member_map_ # True
7 in Fruit._value2member_map_ # False
4 sẽ hiệu quả hơn:values = set[item.value for item in Fruit] # {4, 5, 6}
Sau đó kiểm tra với
5 in values # True
7 in values # False
Thêm 5 in Fruit._value2member_map_ # True
7 in Fruit._value2member_map_ # False
5 vào lớp của bạn
5 in Fruit._value2member_map_ # True
7 in Fruit._value2member_map_ # False
Sau đó, bạn có thể thêm điều này làm phương thức vào lớp của bạn:
class Fruit[Enum]:
Apple = 4
Orange = 5
Pear = 6
@classmethod
def has_value[cls, value]:
return value in cls._value2member_map_
print[Fruit.has_value[5]] # True
print[Fruit.has_value[7]] # False
Kiểm tra các phím
Nếu bạn muốn kiểm tra các tên [chứ không phải giá trị], tôi sẽ sử dụng
5 in Fruit._value2member_map_ # True
7 in Fruit._value2member_map_ # False
6:'Apple' in Fruit._member_names_ # True
'Mango' in Fruit._member_names_ # False
Kiểm tra xem một giá trị có tồn tại trong một enum trong python # không
Để kiểm tra xem một giá trị có tồn tại trong một enum trong Python:
- Sử dụng danh sách hiểu để có được danh sách tất cả các giá trị của Enum.
- Sử dụng toán tử
4 để kiểm tra xem giá trị có trong danh sách không.5 in Fruit._value2member_map_ # True 7 in Fruit._value2member_map_ # False
- Toán tử
4 sẽ trả về5 in Fruit._value2member_map_ # True 7 in Fruit._value2member_map_ # False
9 nếu giá trị nằm trong danh sách.5 in Fruit._value2member_map_ # True 7 in Fruit._value2member_map_ # False
Copied!
from enum import Enum class Sizes[Enum]: SMALL = 1 MEDIUM = 2 LARGE = 3 values = [member.value for member in Sizes] print[values] # 👉️ [1, 2, 3] if 2 in values: # 👇️ this runs print['2 is in enum values'] else: print['2 is NOT in enum values'] print[100 in values] # 👉️ False
Chúng tôi đã sử dụng một danh sách hiểu để có được danh sách các giá trị của Enum.
Danh sách các hệ thống được sử dụng để thực hiện một số hoạt động cho mọi yếu tố hoặc chọn một tập hợp con của các phần tử đáp ứng một điều kiện.
Bước cuối cùng là sử dụng toán tử
5 in Fruit._value2member_map_ # True
7 in Fruit._value2member_map_ # False
4 để kiểm tra xem một giá trị cụ thể có trong danh sách không.Các thử nghiệm trong nhà điều hành để thành viên. Ví dụ,
values = [item.value for item in Fruit] # [4, 5, 6]
1 đánh giá thành 5 in Fruit._value2member_map_ # True
7 in Fruit._value2member_map_ # False
9 nếu values = [item.value for item in Fruit] # [4, 5, 6]
3 là thành viên của values = [item.value for item in Fruit] # [4, 5, 6]
4, nếu không nó sẽ đánh giá thành values = [item.value for item in Fruit] # [4, 5, 6]
5.Nếu bạn cần kiểm tra xem giá trị không nằm trong enum, hãy phủ nhận điều kiện với
values = [item.value for item in Fruit] # [4, 5, 6]
6.Copied!
from enum import Enum class Sizes[Enum]: SMALL = 1 MEDIUM = 2 LARGE = 3 values = [member.value for member in Sizes] print[values] # 👉️ [1, 2, 3] if 100 not in values: # 👇️ this runs print['100 is NOT in enum values']
Bạn có thể sử dụng cùng một cách tiếp cận nếu bạn cần kiểm tra xem một tên cụ thể có mặt trong enum không.
Copied!
from enum import Enum class Sizes[Enum]: SMALL = 1 MEDIUM = 2 LARGE = 3 names = [member.name for member in Sizes] print[names] # 👉️ ['SMALL', 'MEDIUM', 'LARGE'] if 'SMALL' in names: # 👇️ this runs print['SMALL is in enum names']
Thay vì truy cập thuộc tính
values = [item.value for item in Fruit] # [4, 5, 6]
7, chúng tôi đã sử dụng thuộc tính values = [item.value for item in Fruit] # [4, 5, 6]
8 để lấy danh sách tên của Enum.