勉強メモです。
howdoiというpythonのプロジェクトを書き写しています。
keep - PyPI
utils
Your personal shell command keeper
## 2. for文の変数名
for文内で変数を使わない場合はアンダーバーを使うといい
for _, val in some_dict.items():
print(val)
# keyは使わない
■ 関数が多くて迷子になり始めた。。。
[python]print文で色をつけてみよう
変数(定数)にしておくのが普通らしい。
Pythonで環境変数を取得・追加・上書き・削除(os.environ)
os.environ['some_key'] = some_val
で環境変数を設定できる
※システムの環境変数が変わるわけではない
doc
inspect.currentframe - 呼び出し元のフレームオブジェクトを返す(??)
doc
inspect.getouterframes - よくわからないけど実行中のオブジェクトの情報らしきものを返してくれるみたい
Pythonの組み込み関数all(), any()の使い方
any - イテラブルオブジェクトの要素が1つでもTrueであるかどうかを返す
Pythonにおけるlambda()とmap()について現役エンジニアが解説
map関数はイテラブルオブジェクトの各要素に対して同じ処理を行う
lambda関数は「lambda 引数: 返り値」の形で使う
■ anyとmap関数便利だー
cachelibはpythonのライブラリ
github/pallets/cachelib
parse_argsの引数にコマンドライン引数を渡せるみたい
doc
assertはテストだけで使うものではなかった
デバッグ支援のために使える
Pythonで本当に役立つ機能「アサーション」の使い方を解説!『Pythonトリック』から
■ vscodeのデバッグ機能を少しだけ使った
python:callメソッドの基礎
インスタンスを関数のように使ったときに呼ばれる。
Python の例外を別の例外として投げるときの話
組み込み例外
例外をキャッチして別の例外としてraiseする時はfrom
を使う。
except OriginalError as oe:
raise AnotherError from oe
スタックトレースが見やすくなるっていうメリットかなあ
■ クラスの中に自作例外を関数として書いて、raiseで呼び出すのは可読性高くて良いかも
doc
epilogはヘルプ表示で追加説明ができる。
doc
formatter_classはヘルプ出力をカスタマイズできる。
RawTextHelpFormatterは空白を維持する。
Pythonで文字列を折り返し・切り詰めして整形するtextwrap
textwrap.dedent
text の各行に対し、共通して現れる先頭の空白を削除します。
この関数は通常、三重引用符で囲われた文字列をスクリーン/その他の左端にそろえ、なおかつソースコード中ではインデントされた形式を損なわないようにするために使われます。
doc
metavar - 使用法メッセージ(ヘルプ)の中で使われる引数の名前。
doc
nargs - 受け取るべきコマンドライン引数の数。
doc
dest - parse_args() が返すオブジェクトに追加される属性名。
doc
action - コマンドラインにこの引数があったときの基本のアクション。
■ ヘルプ関係の便利関数!
doc
ArgumentParserの使い方を簡単にまとめた
コマンドライン引数を取りたいときに便利なライブラリ。
parse_args()は引数を解析する(そのまんま)
versionという変数をinit.pyに書いている
→モジュールを配布するときにバージョンを示すため。
よくあるパターンだけどアンチパターンでもあるみたい。
versionの罠とベストプラクティス
■ ヘルプコマンドとかはArgumentParserを使って作れるんだな
Pythonのif name == 'main'の意味と使い方
ファイルがコマンドラインから実行された場合にのみ、以降の処理を実行する。
このモジュールをコマンドとして利用することができる。
【中級者への道】Pythonの組み込み関数varsを活用する
引数に渡されたオブジェクトのdic属性を返す。
dic属性はオブジェクトに設定されているプロパティの名前と値が格納されている。
■ 呪文の意味が解読できた
手を動かして理解するshebang
shebang(シェバン)は実行時のインタプリタを指定するもの。
Vscodeのautopep8エラーを解消しようとしたら$brew updateとかいろいろ時間がかかったのでREADMEの書き写しから!
■ だいたいの機能がわかった!