これは面白いと思ったHoisting:巻き上げみたいな挙動(言語不問)
Discussion
Closed
いろんな言語で、Hoisting(巻き上げ)みたいな挙動で「なるほど」と思ったものを教えて下さい。
Hoistingとは:
https://developer.mozilla.org/en-US/docs/Glossary/Hoisting
例)pythonで面白いなと思ったもの:
a = 1
def b():
def c():
print(a)
c()
b()
a = 1
def b():
def c():
print(a)
c()
a = 1
b()
あまりpythonでHoistingみたいな現象を意識した事が無かったので、遭遇してなるほど!と思いました。
※ここでHoistingみたいといっているのは、クロージャの参照が、上から順番に単純に読んだ時よりも下に出てくるものに引きずられてしまうという事を言っています。本来の関数定義のHoistingの意味だと、宣言の内容を実際にその行よりも上で参照できるので、そこはHoistingとは違っています。
(pybabelのgettextをas _
でimportしていたら、使用しない変数に割り当てた_が上記のaにあたる動きをして、エラーになって気づきました)