Effective Python輪読会#4

3
ホッタ@技術ライティング講座受講中 @Hotta3216

関数でNoneを返すと、if文でFalse判定になる そうすると、ゼロを返した時と区別がつかなくなってしまう #ノンプロ研 #EffectivePython

2021-04-23 21:14:51
おおさき🥔小さなIT活用で快適な農場づくりを @massa_potato

pythonのJupyter notebookで、 「関数名?」「関数名??」とセルに入れて実行すると、使い方が見られて便利。組み込み関数でもこれで見られる。#ノンプロ研

2021-04-23 21:27:04
ume @plumfield56

*argsはスター引数ともいうのか。 一人で読んだとき流してたな。 *argsで仮引数を設定すると引数がなくてもエラーが起きないから便利! #ノンプロ研 #EffectivePython

2021-04-23 21:50:47
ホッタ@技術ライティング講座受講中 @Hotta3216

可変長引数は無限に大きいリストも渡せるから、気をつけないとメモリを大量に消費してしまう #ノンプロ研 #EffectivePython

2021-04-23 21:53:55
こはた|Python、GAS勉強中 @kohaku935

ジェネレータを使うと、メモリ大量に使うから、クラッシュさせるかもだから、気をつけて、と脅す1文がまたやって来た。 #ノンプロ研 #EffectivePython

2021-04-23 21:55:06
ホッタ@技術ライティング講座受講中 @Hotta3216

Pythonって型宣言が緩いから、間違えた引数を渡してもフォーマット文字列で出力したら何事もなく動いてしまう #ノンプロ研 #EffectivePython

2021-04-23 21:58:03
ume @plumfield56

Varargs(ばーあーぐす)は可変長引数で Variable-length argumentを略した造語らしい。 書籍では可変長位置引数となっていて、位置が重要だということもメッセージ強調したいのが伝わってくる。 #ノンプロ研 #EffectivePython

2021-04-23 22:01:21
ホッタ@技術ライティング講座受講中 @Hotta3216

可変長引数にジェネレータ渡したらタプルに変換されるのでジェネレータが台無しになる #ノンプロ研 #EffectivePython

2021-04-23 22:04:14
こはた|Python、GAS勉強中 @kohaku935

**演算子ってなんて呼ぶのかな? アスタリスクアスタリスクえんざんし? #ノンプロ研 #EffectivePython

2021-04-23 22:09:59
ホッタ@技術ライティング講座受講中 @Hotta3216

デフォルト値を入れるとオプション扱い=呼び出し側で省略できる オプションのキーワード引数は、拡張前の呼び出し文を修正しなくてもよいメリットがあり、拡張性が高い #ノンプロ研 #EffectivePython

2021-04-23 22:16:55
ホッタ@技術ライティング講座受講中 @Hotta3216

デフォルト引数は関数定義の時に確定するので、動的な値を指定すべきではない #ノンプロ研 #EffectivePython

2021-04-23 22:21:41
ホッタ@技術ライティング講座受講中 @Hotta3216

もし、動的な値をデフォルト値に指定したければ、デフォルト値をNoneにして、関数の中でNoneかどうかを判定して値を設定してあげればよい #ノンプロ研 #EffectivePython

2021-04-23 22:22:45
おおさき🥔小さなIT活用で快適な農場づくりを @massa_potato

関数のデフォルト引数は、モジュール読み込みの際に一度しか評価されない。なのでデフォルト引数としてリストや辞書、datetime.now()など動的な値を使う場合は注意。 こういう使い方したことなかった〜 #ノンプロ研 #EffectivePython

2021-04-23 22:26:27
おおさき🥔小さなIT活用で快適な農場づくりを @massa_potato

デフォルト引数に空の辞書などを渡すのではなく、 デフォルト引数はNoneにしておいて、関数の中でそれがNoneなら空辞書を定義するようにして、 docstringにその関数の振る舞いを書いておくとよい。 #ノンプロ研 #EffectivePython

2021-04-23 22:32:29
おおさき🥔小さなIT活用で快適な農場づくりを @massa_potato

「引数に日付を指定するとその日付をもとに処理した結果を返す」「指定しない場合は今日の日付をもとに処理した結果を返す」というような関数を作りたい時に、このテクニック使えそう〜 #ノンプロ研 #EffectivePython

2021-04-23 22:39:10
こはた|Python、GAS勉強中 @kohaku935

キーワード専用引数。 *の後の引数は、キーワード引数しか使えんぞ、と宣言できる強い強制力。 #ノンプロ研 #EffectivePython

2021-04-23 22:39:21
ume @plumfield56

位置専用引数は前後入れ替わっても問題ないときぐらいしか使う場面は来ない気がする。 キーワード専用引数を使いたい気持ちはわかる。 #ノンプロ研 #EffectivePython

2021-04-23 22:42:12
こはた|Python、GAS勉強中 @kohaku935

Python3.8から、位置専用引数が導入。 キーワード専用引数との混在で使用できる。 使う機会があるかな?位置専用引数。 #ノンプロ研 #EffectivePython

2021-04-23 22:43:33
ume @plumfield56

デコレーターの説明用に記事を共有してもらったのに、Pythonで型宣言できることに一人で衝撃を受けている。 note.com/tommy2011/n/n4… #ノンプロ研 #EffectivePython pic.twitter.com/Umkw9rnNmr

2021-04-23 22:49:35
拡大
ホッタ@技術ライティング講座受講中 @Hotta3216

Massaさんおすすめ『Pythonトリック』ポチりました (私のポチりました=図書館で予約) ついでにこないだタカハシさんが紹介してた『新・明解Python入門』もあったのでついでにポチり #ノンプロ研 #EffectivePython

2021-04-23 23:23:36