パーソナルブログメモリ

a = [1, 1]
for _ in "*" * 999: a += [sum(a[-2:])]
print(a)

Pythonのスコープががばい説を追う

2022-05-27 | 2日でPython3

ここ数日TwitterのPythonのツイートで確認してみました。

 

 

まず関数の外側で指定した変数は関数でそのままみることができます。[1]

(普通の文字と数字の変数でもそうだと知ったのは最近)

ただし関数側でglobal指定されてない場合代入すると別変数になります。[5][6]

 

 

リストは代入するとまったく同じもの[8]

deepcopyを使ってあげましょう[9]

イテレータで回して値を代入しても変わりません[13]

中身によるようですクラスなら変更可能っぽい[△]

 

 

 

selfが面倒という意見も[14]

実はselfでなくてもいいんです[15]

関数のメソッドでselfつけ忘れ、同じ変数が外にあったら参照します[△]

(2日前に実際やらかしました)


最新の画像もっと見る

コメントを投稿

ブログ作成者から承認されるまでコメントは反映されません。