Python中globals()[' var']的缺点是什么?

时间:2015-03-29 21:36:51

标签: python coding-style global-variables

This帖子说你可以使用语法来获得变量:

globals()['var']

然而,它也说这是一个非常糟糕的主意。我的问题是为什么?据我所见,它与做的一样:

global var
var

除了在第一种情况下,实际上可以改变名称。是否存在安全问题,或仅仅是因为它更难阅读?

注意 - 很抱歉,如果这是一个重复的问题,那么搜索会在global()上显示一大堆问题,但我看不到一个问题。

1 个答案:

答案 0 :(得分:1)

对于简短的剧本来说,这不是世界上最糟糕的事情。但是应该避免全局变量,因为它会使代码难以维护。通常,您将变量传递给函数和类。

有时会出现一个有趣的例子,如果你正在尝试scipy curve_fit,并且你有一个函数有很多变量,而不是你想要优化的所有变量。一种解决方案是使其他变量成为全局变量,但普遍接受的方法是使lambda函数分离两个不同的变量。看这里: fitting-only-one-paramter-of-a-function-with-many-parameters-in-python