Python学習【365日チャレンジ!】301日目のマスターU(@Udemy11)です。
ちょっと時間ができたので、本格的に革靴のメンテナンスをしていたら、知らない間に2時間も経っていました。
リムーバーで汚れを落として、クリームを塗ってブラシとクロスで磨いて、仕上げにポリッシャーで磨く工程を6足分まとめてやると流石に右腕が筋肉痛になりそうです。
ほんと靴磨きってちょっとした無酸素運動のトレーニングになります。
磨き上がった靴を眺めていると思わずにやけてくるんですよね。
それでは今日も、Python学習を始めましょう。
昨日の復習
昨日は、サーバーの操作で活用できるIntEnum
を学習しました。
サーバーの状態をチェックして、データーベースに保存された値を利用して、サーバーの処理を替える動作をEnum
でやりましたが、IntEnum
を活用することで、条件分岐のコードをよりシンプルにすることができました。
詳細については昨日の記事をごらんください。
今日は、パーミッションの設定でよく使われるIntFlag
を学習します。
IntFlag
IntFlag
は、サーバーに置かれたファイルのパーミッションを操作する際に使われるなど、最も利用頻度の高いEnum
のクラスになります。
まずは、パーミッションの設定についてのコードを書いていきます。
import enum
class Perm(enum.IntFlag):
R = 4
W = 2
X = 1
print(repr(Perm.R | Perm.W))
print(repr(Perm.R | Perm.W | Perm.X))
3行目から6行目でenum.IntFlag
を継承したPerm
クラスを定義しています。
R
が読み込み、W
が書き込み、X
が実行の権限となり、それぞれ数字で4,2,1
で定義しています。
こちらはサーバーに置かれているファイルの基本定義で、ホームページを作成したことのある人なら、サーバーに置かれているファイルのパーミッションが644
とか755
のものがあることご存知かと思います。
8行目は、読み込みと書き込みの論理和を出力していて、9行目は、読み込み書き込みの論理和で、10行目は、読み込み、書き込み、実行の論理和を出力しています。
出力結果
<Perm.R|W: 6>
<Perm.R|W|X: 7>
Pythonオブジェクトとしての値を持ったPermが出力されていますが、保持している整数はそれぞれ6
と7
が出力されます。
UNIX
UNIX
系のサーバーで使われているパーミッションは、655
や755
といった整数で表されています。
サイトを運営している人なら、パーミッションを変更する時に、これらの数字を見たことがあると思います。
3桁の数字は、左から順番に【オーナーの権限】【グループユーザーの権限】【ゲストの権限】に分かれています。
まとめ
今回学習したIntFlag
は、サーバーに置かれたファイルのパージッションで使われるなどEnum
の中でも最も使われるコードなので、しっかりと覚えておきましょう。
ターミナルを使ってパーミッションの確認や変更もできるので、サイトをお持ちの方は、一度試してみてください。
ということで、明日もGood Python!