这篇文章说,您可以使用以下语法获得一个变量变量:
globals()['var']
然而,它也说这是一个非常糟糕的主意。我的问题是为什么?就我所见,这和做是一样的
global var
var
除了,在第一种情况下,实际上可以更改名称。是否存在安全问题,或者只是因为它更难阅读?
注意-很抱歉,如果这是一个重复的问题,搜索会在global()
上显示一大堆问题,但我找不到一个
对于短脚本来说,这并不是世界上最糟糕的事情。但通常应该避免全局变量,因为这会使代码更难维护。通常情况下,您会将一个变量传递给您的函数和类。
有时会出现一个有趣的例子,如果你试图对curve_filt进行scipy,而你有一个函数有很多变量,但不是所有变量都要优化。一种解决方案是使其他变量全局化,但通常接受的方法是生成一个lambda函数来分离两个不同的变量。请参见此处:只拟合一个函数的一个参数-带任意参数-在上同相