假设当前代码使用字符串作为参数,并且您希望记录它们的有效值。
实施例
def MyFunc(region = None):
if region in ['A','B','C', None]:
# dosomething
else:
# complain about invalid parameter
现在的问题是如何改进这个设计以解决两个问题:
能够使用IDE中的自动完成功能自动完成参数的可能值。
记录参数的有效值列表(目前使用doxygen记录代码)
答案 0 :(得分:5)
这是一个类似的问题: How can I represent an 'Enum' in Python?
建议实施类似的内容:
class MyClass :
A = 0 """The Letter A"""
B = 1 """The Letter B"""
C = 2 """The Letter C"""
D = 3 """The Letter D"""
variable = MyClass.A # Ok
variable = MyClass.E # Error
通过这种方式,您的IDE也可以自动完成。 (这与S.Lott的观点相反,我一直都在使用......我猜的是旧的java习惯。)
使用文档字符串来重述明显的样式被认为是糟糕的风格,我认为在这种情况下会使代码可读性变差。有关文档字符串的更多信息:
http://www.python.org/dev/peps/pep-0257/
如果您很好奇为什么Python中没有枚举类型,您可以查看PEP:
答案 1 :(得分:1)