gpt4 book ai didi

python - Ruby 和 Python 中发生了什么?为什么变量在 ruby​​ 的 if block 中为 nil,而在 python 中为 undefined?

转载 作者:太空宇宙 更新时间:2023-11-03 16:23:16 24 4
gpt4 key购买 nike

这个问题已经有了答案Confusion with the assignment operation inside a falsy `if` block

  if false
y = 'hi'
end

puts y

在 ruby​​ 中,y 已在 if block 中“定义”,它将为 nil(为什么?)。删除该 block ,这会出错。

但是,在 python 中

 if False:
y = 'hi'

print y

会报错。

Ruby 和 Python 中发生了什么?

最佳答案

松本行弘 states

The local variables are created in compile time [...]

这就是为什么 y 在 Ruby 中定义,而 Python 在运行时使用字典来存储局部变量。这也可以通过 locals() 直接访问。

Ruby 部分也出现了 here .

关于python - Ruby 和 Python 中发生了什么?为什么变量在 ruby​​ 的 if block 中为 nil,而在 python 中为 undefined?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30051506/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com