今日、多くのライブラリが、列挙型変数よりも文字列をパラメータとして使用するほうが望ましいように思えました。関数のパラメータとしての列挙型vs文字列
人々は、以前は列挙型を使用していました。 dateutil.rrule.FR金曜日は、文字列を使用する方向にシフトしているようです(例:'FRI')。 例えばをsearchsorted
numpyの(またはそのことについてパンダ)で同じは、(例えば側面=を「左」、または側面=「右」)よりもむしろ定義列挙ストリングの使用します。誤解を避けるために、Pythonの3.4の前に、これは簡単なよう列挙型として実装されている可能性が:
class SIDE:
RIGHT = 0
LEFT = 1
そして列挙型変数の利点は明白です:あなたは、エラーを出さずにそれらを間違えないことができ、 IDEなどの適切なサポートを提供します。
なぜ、列挙型を使用するのではなく、文字列を使用するのはなぜですか?これにより、プログラムはユーザーのエラーにさらされやすくなりますか?列挙型のオーバーヘッドを作成するようなものではありません。だからいつ、なぜこのパラダイムシフトが起こったのですか?