哪个更好:直接使用globals()或通过python脚本中的变量使用

时间:2016-11-28 05:10:01

标签: python

我在一个类中的多个函数中使用Python内置的globals(),我想知道将globals()保存到变量中是否是一个好的做法

available_globals = globals()

或直接使用它:

app_name = globals()['App_Name']

在单个python脚本中,我将使用globals()超过20次。

另外,请帮助我测量脚本执行时间。

2 个答案:

答案 0 :(得分:0)

在python中它并不重要。它曾经在旧版本的PHP中很重要。

我必须承认尽可能依赖全局变量并不是一个好主意。尝试传递参数而不是直接访问全局变量。

请考虑以下示例(错误示例)。

num1 = 5

def add(num2):
    return num1 + num2

add函数不可靠且不可预测,因为它根据全局变量的状态返回不同的值。

现在想象一下程序的其他部分执行以下代码

del num1

换句话说,num1变量不再存在,但add函数仍然依赖于num1全局变量而add函数被破坏。

现在考虑以下示例(更好的示例)。

def add(num1, num2):
    return num1 + num2

仍然没有类型安全,但它比前一个更好,而且功能更可预测和自包含。

您必须使用分析器来衡量脚本的执行速度。考虑使用像PyCharm这样的适当的IDE。

答案 1 :(得分:0)

我认为在代码中避免使用globals()是一种很好的做法。根据代码的位置globals()可能会返回不同的结果,使您的脚本难以阅读。这就是为什么我会建议你使用类似的东西:

x_const = 3.1415926
x_vary = 16

def func_1():
    return x_const

def func_2(x_new):
    global x_vary # use 'global' if you do want to change the variable
    x_vary = x_new