Python文法詳解を詳解する会 #5 まとめ

2015年6月10日(水)に開催された「Python文法詳解を詳解する会 - 第5回」に関するまとめです。 http://python-in-depth.connpass.com/event/15933/ 講師は「Python文法詳解」の著者@atsuoishimotoさんです。 誰でも編集可能にしていますので、追加したい、デコりたいなどございましたらお願いします。 続きを読む
1
Atsuo Ishimoto @atsuoishimoto

あれ。今回申し込みがすくない。告知期間短かったかな - Python文法詳解を詳解する会 - 第5回 python-in-depth.connpass.com/event/15933/ #pygrambook

2015-06-05 15:47:39
AKANE Daigo (赤根 大吾)💉💉 @dgakane

名前と名前が参照するオブジェクトの対応表=名前空間 #pygrambook

2015-06-10 19:07:00
Nozomu Kaneko @knzm2018

Python文法詳解を詳解する会 - 第5回@東京オペラシティ24F に参加 #pygrambook

2015-06-10 19:08:29
AKANE Daigo (赤根 大吾)💉💉 @dgakane

関数内部のローカルな名前空間とトップレベルのグローバル名前空間がある #pygrambook

2015-06-10 19:10:27
AKANE Daigo (赤根 大吾)💉💉 @dgakane

ローカル名前空間→グローバル名前空間→ビルトイン名前空間という検索順 #pygrambook

2015-06-10 19:12:17
AKANE Daigo (赤根 大吾)💉💉 @dgakane

>>> spam = 'ham' >>> import __main__ >>> __main__.__dict__['spam'] 'ham' #pygrambook

2015-06-10 19:14:07
AKANE Daigo (赤根 大吾)💉💉 @dgakane

importの仕方でややこしくなることがあるが、結局のところ、自分を定義したグローバル名前空間を参照する #pygrambook

2015-06-10 19:16:48
AKANE Daigo (赤根 大吾)💉💉 @dgakane

現在のCPython3の実装では、ローカル変数の場合は、辞書ではない #pygrambook

2015-06-10 19:18:26
AKANE Daigo (赤根 大吾)💉💉 @dgakane

そのため、関数内ではfrom module import *形式のインポートができない #pygrambook

2015-06-10 19:19:02
AKANE Daigo (赤根 大吾)💉💉 @dgakane

そんなわけで、グローバル変数に比べ、ローカル変数の方が高速 #pygrambook

2015-06-10 19:20:01
AKANE Daigo (赤根 大吾)💉💉 @dgakane

関数のネスト。ネストされた関数が外側の関数のローカル変数を参照する場合、定義時ではなく、実行時=実際に参照されたときの値が使われる #pygrambook

2015-06-10 19:23:46
AKANE Daigo (赤根 大吾)💉💉 @dgakane

>>> def outer(): ... x = 1 ... def inner(): ... print(x) ... x = 2 ... inner() ... >>> outer() 2 #pygrambook

2015-06-10 19:24:07
AKANE Daigo (赤根 大吾)💉💉 @dgakane

nonlocalを使うと、クロージャのような関数が書ける bank_accountの例 #pygrambook

2015-06-10 19:31:22
AKANE Daigo (赤根 大吾)💉💉 @dgakane

関数本体が終了しているのに、ネストされた関数からnonlocalで自由変数として参照されている変数balanceは削除されない! #pygrambook

2015-06-10 19:36:28
AKANE Daigo (赤根 大吾)💉💉 @dgakane

(続き) >>> import sys >>> a = sys.intern(a) >>> b = sys.intern(b) >>> a is b True #pygrambook

2015-06-10 19:42:04
AKANE Daigo (赤根 大吾)💉💉 @dgakane

クラスのメソッドの第一引数はself 昔はthisじゃないと嫌という人もいた(らしい) #pygrambook

2015-06-10 19:47:39