Python 1年生 体験してわかる!会話でまなべる!プログラミングのしくみ
目次
はじめに
Pythonの標準モジュールのenumの中に、
Flagというクラスがあるのですが、
これが、結構シンプルで使いやすかったので、
かんたんに使い方をまとめておきたいと思います。
Python標準ライブラリのFlagの使い方
下記がかんたんなFlagの使い方です。
特徴的なのは、Flagを継承したクラスを作成し、
そのプロパティをauto()で自動的にナンバリングできることと、
複数のプロパティをグルーピングして、
in
を使って、かんたんにFlagを状態をチェックすることができることです。
In [3]: from enum import Flag, auto In [4]: class Functions(Flag): ...: FUNC1=auto() ...: FUNC2=auto() ...: FUNC3=auto() ...: FUNC12=FUNC1|FUNC2 ...: ALL=FUNC1|FUNC2|FUNC3 ...: In [5]: Functions.FUNC1 in Functions.FUNC12 Out[5]: True In [6]: Functions.FUNC2 in Functions.FUNC12 Out[6]: True In [7]: Functions.FUNC3 in Functions.FUNC12 Out[7]: False In [8]: Functions.FUNC12 in Functions.ALL Out[8]: True In [9]: Functions.ALL in Functions.FUNC12 Out[9]: False
enumモジュールの中には、IntFlag, StrFlagなどもありますが、
特段理由がない場合は、通常のFlagを使うように勧められています。
参考資料
MyEnigma Supporters
もしこの記事が参考になり、
ブログをサポートしたいと思われた方は、
こちらからよろしくお願いします。