ホームページ >バックエンド開発 >Python チュートリアル >Python で列挙型を表現するにはどうすればよいですか?
Python での列挙型の表現
列挙型は、現代のプログラミング手法の重要な側面であり、有限および固定の値セットの表現を可能にします。 Python では、複数のアプローチを使用して列挙型を表すことができ、開発者に柔軟性とさまざまな Python バージョンとの互換性を提供します。
標準ライブラリ列挙型 (Python 3.4 )
の出現によりPython 3.4 では、標準化された enum 実装が導入されました。 PEP 435 を参照すると、組み込みの enum モジュール内で Enum クラスを利用できます。このアプローチは、簡潔さと使いやすさという Python の哲学と一致しています。
例:
from enum import Enum Animal = Enum('Animal', 'ant bee cat dog') print(Animal.ant) # Output: <Animal.ant: 1> print(Animal['ant'].name) # Output: 'ant'
サードパーティ ライブラリ
3.4 より前の Python バージョンの場合、サードパーティのライブラリが信頼性の高いソリューションを提供します。列挙型の実装。一般的なオプションは次の 2 つです:
enum34 を使用した例:
from enum34 import Enum Animal = Enum('Animal', 'ant bee cat dog') print(Animal.ant) # Output: <Animal.ant: 1> print(Animal.ant.name) # Output: 'ant'
手動 Enum 実装 (Python 3.4 以前)
Python 3.4 に列挙型が含まれる前は、開発者はカスタム アプローチを採用しました。一般的な方法の 1 つは、@property デコレータを使用してクラスを作成して enum 値を定義する方法でした。
例:
class Animal: ant = 1 bee = 2 cat = 3 dog = 4 print(Animal.ant) # Output: 1 print(Animal.cat.name) # Error: 'int' object has no attribute 'name'
このアプローチには、標準化された enum の安全性と利便性が欠けています。ただし、下位互換性のためのオプションのままです。
エイリアスの入力 (Python 3.8) )
最近導入された型指定エイリアスは、列挙型の動作の代替手段を提供します。リテラル型を使用すると、一連の固定値を指定できます。
例:
from typing import Literal Animal: Literal['ant', 'bee', 'cat', 'dog'] = 'ant'
ただし、このアプローチには、従来の列挙型の堅牢な機能が欠けています。名前から値への自動解決。
以上がPython で列挙型を表現するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。