【发布时间】:2015-01-08 13:57:15
【问题描述】:
我注意到现在许多库似乎更喜欢使用字符串而不是枚举类型变量作为参数。
人们以前会使用枚举的地方,例如dateutil.rrule.FR 为星期五,这似乎已转向使用字符串(例如 'FRI')。
在 numpy(或 pandas)中也是如此,其中 searchsorted 例如使用字符串(例如 side='left' 或 side='对') 而不是定义的枚举。为免生疑问,在 python 3.4 之前,这可以很容易地实现为枚举:
class SIDE:
RIGHT = 0
LEFT = 1
枚举类型变量的优点很明显:你不能拼错它们而不会引发错误,它们为 IDE 等提供了适当的支持。
那么为什么要使用字符串,而不是坚持使用枚举类型呢?这不会使程序更容易出现用户错误吗?这不像枚举会产生开销——如果有的话,它们应该稍微更有效率。那么这种范式转变发生在何时以及为何发生?
【问题讨论】:
标签: python numpy coding-style