gpt4 book ai didi

python - 哪些类型的语言允许以编程方式创建变量名?

转载 作者:行者123 更新时间:2023-11-28 20:11:06 27 4
gpt4 key购买 nike

这个问题纯粹是出于求知欲。

我经常浏览 Python 部分,看到了很多类似于 this 的问题。 ,有人要求以编程方式定义全局变量。他们中的一些人知道 exec 的陷阱,而其他人则不知道。

不过,我最近一直在用 Stata 编程,其中常见以下情况:

local N = 100
local i = 1

foreach x of varlist x1 - x`N' {
local `x' = `i' * `i'
++i
}

在 Stata 中,创建了一个名为 N 的本地宏,N 的计算结果为 100。在 foreach 的每次迭代中循环,从x1x100 的值被分配给局部宏x。然后,循环内的代码将 i 的平方分配给 x 的扩展,这是一个与 i 结尾相同的局部宏。也就是说,在此循环之后 x4 扩展为 4^2,x88 扩展为 88^2。

在 Python 中,做类似事情的方法是:

squares = {}

for x in range(1,101):
squares[x] = x**2

然后 squares[7] 等于 7^2。

这是一个非常简单的例子。 Stata宏还有很多其他用途。您可以将它们用作传递要评估的函数的方式,例如:

local r1 "regress"
local r2 "corr"

foreach r of varlist r1-r2 {
``r'' y x
}

r 周围的双刻度线将该宏展开两次,首先是 r1/r2 然后是 regress/corr,以y为因变量,x为自变量运行线性回归的结果,然后显示yx。更复杂的东西是可能的。

我的问题基本上是,stata 是否属于更大的语言类别,其中变量赋值/评估采用这种“宏赋值/扩展”形式?任何对语言为何设计成这样的解释和/或其他语言中类似结构的示例的加分。

最佳答案

这实际上只是一个语法糖有多少的问题。在任何有值(value)的语言中,您都可以使用映射或字典数据结构在运行时创建具有某些值的变量名(键)。有些语言可能比其他语言更透明地将其与普通变量标识符集成。

关于python - 哪些类型的语言允许以编程方式创建变量名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5189771/

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