Python列挙型のデフォルト値を指定する方法はありますか?

スティーブン

次の列挙型が与えられます:

class MyEnum(IntEnum):

    A = 0
    B = 1
    C = 2

デフォルト値を指定するにはどうすればよいですか。できるようにしたい:

my_val = MyEnum()

とされてmy_valいる<MyEnum.A: 0>

これは可能ですか?私は、カスタマイズを試してみた__new____init____call__私は仕事にそれを得ることができません。

falsetru

MyEnum(..)によって処理されEnumMeta.__call__ます。そのメソッドをオーバーライドする必要があります。

from enum import EnumMeta, IntEnum


class DefaultEnumMeta(EnumMeta):
    default = object()

    def __call__(cls, value=default, *args, **kwargs):
        if value is DefaultEnumMeta.default:
            # Assume the first enum is default
            return next(iter(cls))
        return super().__call__(value, *args, **kwargs)
        # return super(DefaultEnumMeta, cls).__call__(value, *args, **kwargs) # PY2


class MyEnum(IntEnum, metaclass=DefaultEnumMeta):
    # __metaclass__ = DefaultEnumMeta  # PY2 with enum34
    A = 0
    B = 1
    C = 2


assert MyEnum() is MyEnum.A
assert MyEnum(0) is MyEnum.A
assert MyEnum(1) is not MyEnum.A

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

型変数から列挙型のデフォルト値を取得する方法

LodashまたはUnderscoreでnullのデフォルト値を指定する方法はありますか?

Spring XMLでデフォルトのプロパティ値を指定する方法はありますか?

Pythonでデフォルトのデータ型を変更する方法はありますか?

列挙型の基になる型としてブール値を使用する方法はありますか?

最初の列挙型を「安全な」デフォルトにするためのC ++ガイドラインはありますか?

列挙型のデフォルト値を設定する(Java)

不明な列挙型にデフォルト値があるかどうかを確認します

非整数の列挙データ型を作成する方法はありますか?

Python-比較して使用すると、デフォルトで列挙型の値を取得します

列挙型エントリに複数の値を格納する方法はありますか?

コンストラクターの列挙型にデフォルト値で値を割り当てるにはどうすればよいですか?

Kotlinのデータクラス内に列挙型をネストする方法はありますか?

Rustの列挙型フィールドを変更する簡単な方法はありますか?

Arcanistでデフォルトのレビュー担当者を指定する方法はありますか?

クラスのデフォルトプロパティを指定する方法はありますか?

デフォルトの失敗ケースで条件型を実装する良い方法はありますか?

一部のフィールド値を更新して列挙型のコピーを作成する方法はありますか?

djangoモデルのCharFieldにデフォルト値を設定する方法はありますか?

FXCop列挙型のCA1008ルールに従って、デフォルト値はゼロである必要があります。これはC#に適用できますか?

列挙型変数のデフォルト値は何ですか?

Specman e:列挙型にいくつの値があるかを知る方法はありますか?

Cでの型を知らなくても、変数をデフォルト値に初期化する方法はありますか?

ArrayIndexOutOfBoundsExceptionの原因となる値をデフォルト値に置き換える方法はありますか?

ID自体と等しいテーブルのデフォルト値を割り当てる方法はありますか?

値が存在しない場合に列挙型のデフォルト値を取得する方法

MySQLで自動コミットのデフォルト値を取得する方法はありますか?

Postgresqlで、列の値を列挙型に制限する方法はありますか?

mockitoとtestNgを使用して列挙型のデフォルト値をテストする方法

TOP 一覧

  1. 1

    Python / SciPyのピーク検出アルゴリズム

  2. 2

    セレンのモデルダイアログからテキストを抽出するにはどうすればよいですか?

  3. 3

    tkinterウィンドウを閉じてもPythonプログラムが終了しない

  4. 4

    androidsoongビルドシステムによるネイティブコードカバレッジ

  5. 5

    ZScalerと証明書の問題により、Dockerを使用できません

  6. 6

    Reactでclsxを使用する方法

  7. 7

    VisualStudioコードの特異点/ドッカー画像でPythonインタープリターを使用するにはどうすればよいですか?

  8. 8

    二次導関数を数値計算するときの大きな誤差

  9. 9

    Ansibleで複数行のシェルスクリプトを実行する方法

  10. 10

    STSでループプロセス「クラスパス通知の送信」のループを停止する方法

  11. 11

    ビュー用にサイズ変更した後の画像の高さと幅を取得する方法

  12. 12

    Three.js indexed BufferGeometry vs. InstancedBufferGeometry

  13. 13

    __init__。pyファイルの整理中に循環インポートエラーが発生しました

  14. 14

    三項演算子良い練習の代わりとしてOptional.ofNullableを使用していますか?

  15. 15

    エンティティIDを含む@RequestBody属性をSpringの対応するエンティティに変換します

  16. 16

    Spring Boot Filter is not getting invoked if remove @component in fitler class

  17. 17

    値間の一致を見つける最も簡単な方法は何ですか

  18. 18

    reCAPTCHA-エラーコード:ユーザーの応答を検証するときの「missing-input-response」、「missing-input-secret」(POSTの詳細がない)

  19. 19

    Rパッケージ「AppliedPredictiveModeling」のインストール中にエラーが発生しました

  20. 20

    画像変更コードを実行してもボタンの画像が変更されない

  21. 21

    好き/愛の関係のためのデータベース設計

ホットタグ

アーカイブ