如果我的python函数带有一个需要在特定值列表中的字符串参数,那么处理这个问题的最佳方法是什么?是否存在在文档字符串中表达此内容的约定?
例如
def makeShape(shape):
assert shape in ["circle", "square", "triangle"]
有没有更好的方式来表达形状应该始终是这三个值中的一个?
答案 0 :(得分:10)
您可以使用enum
来获得正确的形状:
class rightShape(Enum):
circle = 1
square = 2
triangle = 3
def makeShape(rightShape):
# code in function
如果您尝试将函数传递给circle
,square
或triangle
,则会产生诚实至善的错误。
答案 1 :(得分:1)
如果这是真正的错误,您应该提出异常。我认为TypeError是一个合理的选择,但您可能想要定义自己的。
assert
语句用于开发。请注意,使用-O
参数时会忽略它们,因此不应依赖它们来捕获错误。