Python学習【365日チャレンジ!】299日目のマスターU(@Udemy11)です。
新しいiPhoneが欲しくて、どのキャリアで購入するのがいいのかネットをうろうろしていると、知らない間に3時間も経っていました。
キャリアによって本体価格も違って、車の残クレみたいな買い方があるし、プランも違うしで、Appleで本体を購入して、格安SIMを使ったほうがいいんじゃないかと思ったり、いろいろと考えていると、時間だけがどんどん過ぎていくんですよね。
まー、今使っているiPhoneも不都合が出ているわけじゃないので、替える必要はないのですが、新しいのを物色しだすと欲しくなってくるんですよね。
とはいえ、ブラックフライデー&サイバーマンデーセール、楽天スーパーセールでお金を使いすぎているので、今回のiPhoneは見送り予定になりそうです。
それでは今日も、Python学習を始めましょう。
昨日の復習
昨日は、定義した値以外の操作をするときはエラーをかえすEnum
の基本を学習しました。
Enum
は、列挙型定数を指定しておいて、存在しない値を使った場合はエラーを発生させることができました。
格納している値をfor
ループを使って取り出すこともできました。
Enum
の詳細については昨日の記事をごらんください。
今日は、Enum
を使ってサーバーの状態に応じた処理をする方法を学習します。
Enumの使い方
例えばデータベースにサーバーの状態(active
inactive
)が保存されていたとして、その状態を判断して、なにかの処理をさせるコードを書いてみます。
from enum import Enum
db = {
'server1': 1,
'server2': 2,
}
class Status(Enum):
ACTIVE = 1
INACTIVE = 2
RUNNING = 3
if Status(db['server1']) == Status.ACTIVE:
print('shutdown')
elif Status(db['server1']) == Status.ACTIVE:
print('terminate')
一例として、サーバーの状態を取得して、データーベースにサーバーの名前と状態を保存したデータがあるとします。
データーベースに保存されているのが、3行目から6行目の辞書型データです。
ちなみに、1
がactive
、2
がinactive
を表現していますが、文字列で記述すると、データベースのリソースを多く使ってしまうので、サーバーの状態を取り扱うときは、数字で入れるのが通常の使い方になります。
つまり、現状で取得している値は、server1
が、active
で、server2
がinactive
ということです。
8行目から11行目でEnum
を使って、サーバーの状態を列挙型で定義しています。
次に、13行目から16行目で取得したデータベースの値がどういう状態なのか判断して、出力する処理(今回は文字列の出力)を決めています。
13行目で、データベースdb
のserver1
のvalue
(つまり1
)が、Status.ACTIVE
と同じ場合は、14行目でshutdown
を出力して、15行目でdb
のserver1
のvalue
(つまり1
)が、Status.INACTIVE
と同じかどうかを判断して、16行目でterminate
を出力します。
出力結果
shutdown
データーベースdb
に格納されているserver1
のvalue
は1
なので、Status.ACTIVE
が返されて、条件が合致して、出力結果はshutdown
になっています。
実際には、サーバーの状態を取得してデータベースに保存するという作業も必要ですし、shutdown
を出力するのではなく、シャットダウンさせるコードも必要になりますが、擬似的にすでにデータベースに保存したという作業はすでに完了していて、シャットダウンも文字を出力することで代用しています。
まとめ
より実践的にサーバーの状態を取得するところから始まって、サーバーをシャットダウンするコードまで書いていると、それだけで一つの講座ができそうなので、酒井さんの講座では、擬似的に処理をprint
出力にしているので、最初はいまいち分かりづらいかもしれません。
私自身、最初のうちは、実際の処理でprint
出力するんだとおもっていましたし、具体的な処理コードではなく、擬似的な処理としてprint
出力していることに気づくまでに少し時間がかかりました。
講座を繰り返し学習することで、理解が深まるので、1度だけでなく、何度も繰り返し学習したほうがいいのは間違いありません。
重要なのは、自分の中でしっかりと消化することですので、どんな講座でも一度だけでなく、継続して複数回学習したほうがいいでしょう。
継続は力なり
なんですよね。
それでは、、明日もGood Python!