我想像下面的代码一样在python中使用枚举(java)。我是Python中的新手。我在Java中使用以下代码,并希望在Python中复制该功能:
class Direction {
public enum Direction {LEFT, RIGHT, UP, DOWN}
public void navigate(Direction direction)
switch(direction){
case Direction.LEFT:
System.out.print("left");
break;
case Direction.RIGHT:
System.out.print("right");
break;
case Direction.UP:
System.out.print("up");
break;
case Direction.DOWN:
System.out.print("down");
break;
}
}
如何强制用户只为Python方法提供枚举?
Python是动态的并且是鸭子类型的-变量可以更改类型,并且您不能在方法上强制使用类型。
但是,您可以使用来检查方法主体中的类型isinstance()
。
-查看评论isinstance()
允许用户将您 enum
的子类划分 为将来的扩展性。
例如
# 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
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句