Python学習【365日チャレンジ!】249日目のマスターU(@Udemy11)です。
日本人ならあまり興味がないかもしれませんが、11月3日はアメリカ大統領を決める投票日です。
日本では無茶ぶりな政策が強調されているトランプ大統領ですが、「なぜそんなに支持する人々が多いのか?」ということが前から気になっていました。
このコロナ過でマスクもつけずにコロナに感染して、さらにホワイトハウスがクラスター化している事態で、しかも選挙活動のために自分勝手に退院してコロナウィルスをまき散らすような大統領です。
ほんと、なぜ?としか思えないんですよね。
そんな疑問を解決してくれた記事がこちら
大衆心理をうまくつかんで利用しているわけです。
カエサルの言葉で「人は自分が見たいものしか見ない」という有名な言葉がありますが、トランプ大統領は労働階級の白人たちに「自分たちが一番だったアメリカを取り戻そう!」と訴えて、自分が見たいものを見せてあげていることが、支援者支援者たちの支持基盤を確固たるものにしているようです。
とはいえ流石に少しずつ現実をみはじめた人が増えてきているようですが、アメリカ大統領選の結果はどうなるんでしょうね。
それでは今日もPython学習を始めましょう。
昨日の復習
昨日は、実行結果を活用して処理を行うexecute
の使い方を学習しました。
非常に簡単に紹介しましたが、取得した値を辞書型データにして、データを活用できるようにするのがexecute
でした。
具体的な使い方は紹介できていませんが、サーバーのファイル一覧を取得して、ホストと取得した値を辞書型に入れた返り値を取得することができました。
詳細については、昨日の記事を参考にしてみてください。
今日は、処理を一度だけ行うruns_once
を学習します。
runs_once
サーバーの初期設定など、1回実行すればあとは実行する必要がない場合に使えるのがruns_once
です。
from fabric.api import env, runs_once
env.hosts = ['root@172.16.200.101:22', 'root@172.16.200.102:22']
env.passwords = {
'root@172.16.200.101:22': 'root',
'root@172.16.200.102:22': 'root',
}
@runs_once
def db_init():
print('init')
def deploy_db():
db_init()
1行目でruns_once
を読み込んで、データベースの初期化をするための関数db_init
を作っています。
例なので、11行目では、print('init')
としてinit
を出力する関数にしています。
13行目の関数deploy_db
で@runs_once
をデコレーターにしたdb_init
を実行しています。
実行結果
結果を見るとわかりますが、server1
ではinit
が出力されていますが、server2
では出力されていません。
2つのサーバーで一度だけ実行されるのかと思いきや、最初のサーバーでのみdb_init()
が実行されています。
runs_once
の関数は1度だけ実行されるので、上記のプログラムコードの最後の行にdb_init()
を付け加えて2回実行しようとしてもruns_once
でデコレートされているので、上記と同じ実行結果になります。
runs_once
は、クライアントのサーバーで一度だけ実行するのではなく、先頭のサーバーのみで実行されるということです。
まとめ
酒井さんの講座では、使用頻度の高いコードを広く浅く紹介しているので、余り深いところまでは解説されていません。
まー、全てを深く解説していると、時間がかかりすぎて、講座としては成り立たないので、あとは自分で調べてより複雑な使い方を学んでいく必要があります。
どんな学習でも、自己学習、自己研鑽は必要不可欠だということですね。
それでは明日もGood Python!