Python是动态的和鸭子类型 – 变量可以改变类型,你不能强制类型的方法.
但是,您可以使用isinstance()检查方法体中的类型. instance()将允许用户子类化枚举以便将来扩展.
例如.
# Python 2.x: pip install enum34
from enum import Enum
class Direction(Enum):
LEFT = "left"
RIGHT = "right"
UP = "up"
DOWN = "down"
def move(direction):
# Type checking
if not isinstance(direction, Direction):
raise TypeError('direction must be an instance of Direction Enum')
print direction.value
>>> move(Direction.LEFT)
left
>>> move("right")
TypeError: direction must be an instance of Direction Enum