为什么绝大多数编程语言要求变量的名称必须在代码中显式地给出?
关注者
84被浏览
66,985登录后你可以
不限量看优质回答私信答主深度交流精彩内容一键收藏
还就打上了Python的标签。你需要的需求在Python中完全是可以实现的:
hello = 'Hello, world!'
variable = 'hello'
print(eval(variable)) # => Hello, world!
print(globals()[variable]) # => Hello, world!
Ruby自从2.1.3开始,除了eval之外,Binding类支持local_variable_get和local_variable_set等骚操作。
如果你将binding泄漏出去,甚至可以让程序从外部修改你的局部变量:
fiber = Fiber.new do
hello = 'Hello, world!'
puts hello
Fiber.yield binding
puts hello
end
b = fiber.resume # => Hello, world!
b.local_variable_set :hello, 'Hello, Ulysses!'
fiber.resume # => Hello, Ulysses!