如何明确定义给定变量可以具有哪些值?假设我希望可变大小的值是'small'、'medium'或'big'而不是别的。
编辑:我想避免将变量设置为列表之外的内容(例如在这种情况下设置为“小”)的情况。就像 Java 中的枚举一样。这个变量将是一个类字段。
最简单的方法是始终使用专用方法,该方法首先验证输入,如果正确则设置变量。您可以在下面找到一些示例:
class Test:
def __init__(self):
self.__variable = None
def set_variable(self, value):
if value not in ('small', 'medium', 'big'):
raise ValueError()
self.__variable = value
Run Code Online (Sandbox Code Playgroud)
您正在描述一个enumeration,该enum库在 Python 中受支持:
from enum import Enum
class Size(Enum):
small = 'small'
medium = 'medium'
big = 'big'
size = Size('big')
print(size)
try:
size = Size('tiny')
except ValueError as e:
print("invalid Size (", e.args[0].split()[0],
"). Size must be one of 'small', 'medium' or 'big'", sep='')
Run Code Online (Sandbox Code Playgroud)
输出:
Size.big
invalid Size ('tiny'). Size must be one of 'small', 'medium' or 'big'
Run Code Online (Sandbox Code Playgroud)