Ad
1: 2019-05-26 (日) 01:56:40 njf ソース バックアップ No.1 を復元して編集 現: 2019-05-26 (日) 23:02:18 njf ソース 編集
Line 1: Line 1:
 +*基本 [#oda99e39]
 +
Pythonの列挙型enumは何かひとまとまりの定数を定義するときに便利な型で、Python3.4から導入されました。 Pythonの列挙型enumは何かひとまとまりの定数を定義するときに便利な型で、Python3.4から導入されました。
-*基本 [#oda99e39] +例えば、ゲームのプログラムで今どの画面かを識別するために以下のような変数を定義したとします。
- +
-例えば、ゲームで今どの画面かを識別するために以下のような定数を定義したとします。+
 SCREEN_TITLE = 1 #タイトル画面  SCREEN_TITLE = 1 #タイトル画面
Line 16: Line 16:
 from enum import Enum  from enum import Enum
 + 
 class Screen(Enum):  class Screen(Enum):
     TITLE = 1      TITLE = 1
Line 40: Line 40:
Enumは他の型の値と直接比較できないので注意してください。 Enumは他の型の値と直接比較できないので注意してください。
 +めんどうなようですが、こうなっているとせっかく定義したEnum型を使わずに手で直接値を指定してしまうという、いわゆるマジックナンバーの問題をある程度予防してくれるというメリットがあります。
-もし比較したいなら、後述のIntEum型なら整数との比較が可能です。+必要であれば、後述のIntEum型なら整数との比較が可能です。
この記事では数値で定義しましたが、文字列で定義することも可能です。 この記事では数値で定義しましたが、文字列で定義することも可能です。
Line 100: Line 101:
 from enum import Enum, auto  from enum import Enum, auto
 + 
 class Screen(Enum):  class Screen(Enum):
     TITLE = auto()      TITLE = auto()
Line 158: Line 159:
   TEST3 = auto()    TEST3 = auto()
   TEST2_ALT = TEST2    TEST2_ALT = TEST2
 + 
 print(Test.TEST2_ALT,Test.TEST2_ALT.value)  print(Test.TEST2_ALT,Test.TEST2_ALT.value)
Line 177: Line 178:
Enumにビット演算子を適用可能にしてフラグとして使いやすくした物です。 Enumにビット演算子を適用可能にしてフラグとして使いやすくした物です。
-ここに書くと長くなるので後日ページを分けて説明します。+ここに書くと長くなるのでページを分けて[[Python/FlagとIntFlag]]で説明しています。
*まとめ [#a8d5981a] *まとめ [#a8d5981a]


トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード印刷に適した表示   ページ新規作成 全ページ一覧 単語検索 最新ページの一覧   ヘルプ   最新ページのRSS 1.0 最新ページのRSS 2.0 最新ページのRSS Atom Powered by xpWiki
Counter: 3101, today: 4, yesterday: 0
MenuBar
広告

ログイン

ユーザー名:


パスワード:





パスワード紛失

Portuguese | English | German | Greek | Japanese | Korean | Russian | T-Chinese top
NJF