enum Pythonとは何ですか

Jun 22, 2019 am 10:38 AM
列挙する

enum Pythonとは何ですか

列挙型はラベルまたは定数のコレクションとみなすことができ、通常は週、月、ステータスなどの特定の限定されたコレクションを表すために使用されます。 Python のネイティブ型 (組み込み型) には特別な列挙型はありませんが、辞書やクラスなどの多くのメソッドを通じて実装できます。

WEEKDAY = {
  'MON': 1,
  'TUS': 2,
  'WEN': 3,
  'THU': 4,
  'FRI': 5
  }
  class Color:
  RED = 0
  GREEN = 1
  BLUE = 2
ログイン後にコピー

上記の 2 つのメソッドは次のように考えることができます。単純な列挙型の実装では、そのような列挙型変数がローカル スコープでのみ使用される場合は問題ありませんが、問題はそれらがすべて変更可能であることです。つまり、他の場所で変更され、実装に影響を与える可能性があります。 use:

WEEKDAY['MON'] = WEEKDAY['FRI']
  print(WEEKDAY)
  {'FRI': 5, 'TUS': 2, 'MON': 5, 'WEN': 3, 'THU': 4}
  通过类定义的枚举甚至可以实例化,变得不伦不类:
  c = Color()
  print(c.RED)
  Color.RED = 2
  print(c.RED)
  0
  2
ログイン後にコピー

もちろん、タプルなどの不変型 (immutable) を使用することもできますが、これでは列挙型の本来の目的が失われ、ラベルが意味のない変数に劣化します:

COLOR = ('R', 'G', 'B')
  print(COLOR[0], COLOR[1], COLOR[2])
  R G B
ログイン後にコピー

より良いソリューションを提供するために、Python は PEP 435 を通じてバージョン 3.4 に enum 標準ライブラリを追加しました。3.4 より前のバージョンでは、pip install enum を通じて互換性のあるサポートされるライブラリをダウンロードすることもできます。 enum は Enum/IntEnum/unique の 3 つのツールを提供しており、その使用法は非常に簡単です。Enum/IntEnum を継承することで列挙型を定義できます。IntEnum は列挙メンバーを整数型に制限し (または整数型に変換でき)、unique メソッドはデコレータは列挙型メンバーの値を反復不可能に制限します:

from enum import Enum, IntEnum, unique 
     try:
  @unique
  class WEEKDAY(Enum):
  MON = 1
  TUS = 2
  WEN = 3
  THU = 4
  FRI = 1
  except ValueError as e:
  print(e)
  duplicate values found in : FRI -> MON
  try:
  class Color(IntEnum):
  RED = 0
  GREEN = 1
  BLUE = 'b'
  except ValueError as e:
  print(e)
  invalid literal for int() with base 10: 'b'
ログイン後にコピー

以上がenum Pythonとは何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

PHP 8.1の列挙(列挙)とは何ですか? PHP 8.1の列挙(列挙)とは何ですか? Apr 03, 2025 am 12:05 AM

php8.1の列挙関数は、指定された定数を定義することにより、コードの明確さとタイプの安全性を高めます。 1)列挙は、整数、文字列、またはオブジェクトであり、コードの読みやすさとタイプの安全性を向上させることができます。 2)列挙はクラスに基づいており、トラバーサルや反射などのオブジェクト指向の機能をサポートします。 3)列挙を比較と割り当てに使用して、タイプの安全性を確保できます。 4)列挙は、複雑なロジックを実装するためのメソッドの追加をサポートします。 5)厳密なタイプのチェックとエラー処理は、一般的なエラーを回避できます。 6)列挙は魔法の価値を低下させ、保守性を向上させますが、パフォーマンスの最適化に注意してください。

文字列値で列挙型を検索する Python プログラム 文字列値で列挙型を検索する Python プログラム Sep 21, 2023 pm 09:25 PM

Python の列挙は、名前付きの値のセットで構成されるユーザー定義のデータ型です。有限の値セットは列挙を使用して定義され、Python では整数値の代わりに名前を使用してこれらの値にアクセスできます。列挙により、コードが読みやすく保守しやすくなり、型の安全性も強化されます。この記事では、Python で文字列値によって列挙型を検索する方法を学びます。文字列値で enum を検索するには、次の手順に従う必要があります。 コードに enum モジュールをインポートします。 必要な値のセットを使用して enum を定義します。 enum 文字列を入力として受け取り、対応する enum 値を返す関数を作成します。構文 fromenumimportEnumclassClassName(Enum

C++ 関数が列挙型を返す場合の利点は何ですか? C++ 関数が列挙型を返す場合の利点は何ですか? Apr 20, 2024 pm 12:33 PM

列挙型を関数の戻り値として使用する利点: 可読性の向上: 意味のある名前定数を使用して、コードの理解を強化します。タイプ セーフティ: 戻り値が予期される範囲内に収まることを確認し、予期しない動作を回避します。メモリの節約: 列挙型は通常、占有する記憶領域が少なくなります。拡張が簡単: 新しい値を列挙に簡単に追加できます。

C/C++ で列挙型を使用するにはどうすればよいですか? C/C++ で列挙型を使用するにはどうすればよいですか? Aug 28, 2023 pm 05:09 PM

列挙型は、C 言語のユーザー定義のデータ型です。これは整数定数に名前を付けるために使用され、プログラムを読みやすく、保守しやすくします。キーワード「enum」は列挙型を宣言するために使用されます。 C 言語の列挙型の構文は次のとおりです: enumenum_name{const1,const2,....};enum キーワードは変数 sofenum 型の定義にも使用されます。変数 sofenum 型を定義するには次の 2 つの方法があります。enumweek{sunday,monday,tuesday,

C++ 構文エラー: 列挙メンバーは括弧内で初期化する必要があります。どうすればよいですか? C++ 構文エラー: 列挙メンバーは括弧内で初期化する必要があります。どうすればよいですか? Aug 22, 2023 pm 03:41 PM

C++ は一般的なプログラミング言語であり、その構文は比較的厳密であり、学習と適用が簡単です。ただし、特定のプログラミングでは、さまざまなエラーが発生することは避けられません。よくあるエラーの 1 つは、「列挙型メンバーは括弧内で初期化する必要がある」です。 C++ では、列挙型は、次のような離散値を持つ定数のセットを定義できる非常に便利なデータ型です: enumColor{RED,YELLOW,GREEN}; この例では、3 つの列挙を含む列挙型 Type Color を定義します。

Java プログラムは列挙型で定義されたすべての定数にアクセスします Java プログラムは列挙型で定義されたすべての定数にアクセスします Aug 19, 2023 pm 04:29 PM

JDK バージョン 5 以降、Java には列挙型が導入されました。これは、キーワード「enum」を使用して定義された定数のセットです。 Java では、final 変数は列挙型に似ています。この記事では、列挙型クラスを定義し、valueOf() メソッドと value() メソッドを使用して列挙型で定義されたすべての定数にアクセスする Java プログラムを作成します。 Enum の中国語訳は: Enumeration. 固定の定数セットを定義する必要がある場合は、列挙クラスを使用します。たとえば、曜日、惑星の名前、5 つの母音の名前などを使用したい場合。すべての定数の名前は大文字で宣言されていることに注意してください。 Java では列挙はクラス型ですが、インスタンス化することはできません。存在する

Javaの列挙型 Javaの列挙型 Jun 15, 2023 pm 08:46 PM

Java は、豊富な構文と組み込み型を提供するオブジェクト指向プログラミング言語です。 Java の列挙型は、プログラマが値の固定コレクションを定義し、各値に名前を割り当てることができる特別な型です。列挙型は、関連する定数のグループを表すためのシンプル、安全、読みやすい方法を提供します。 Java の列挙型は参照型であり、JavaSE5 で導入されました。列挙型の定義では、キーワード「enum」を使用して、定義内のすべての列挙定数をリストします。毎

C++ 構文エラー: 列挙型の識別子は整数定数でなければなりません。これを解決するにはどうすればよいですか? C++ 構文エラー: 列挙型の識別子は整数定数でなければなりません。これを解決するにはどうすればよいですか? Aug 22, 2023 am 10:27 AM

C++ でプログラミングしている場合、「列挙型の識別子は整数定数である必要があります」という構文エラー メッセージが表示されることがあります。この記事では、この問題の原因と考えられる解決策について説明します。まず、列挙とは何かを明確にする必要があります。 C++ では、列挙は、離散値を持つ定数のコレクションを定義するために使用される特別なデータ型です。列挙内の各定数には整数値が割り当てられ、最初の定数はデフォルトで 0 に設定され、残りの定数は順番に増加します。例: enumWeekday{月曜日、火曜日

See all articles