我在一个类中的多个函数中使用Python内置的globals(),我想知道将globals()保存到变量中是否是一个好的做法
available_globals = globals()
或直接使用它:
app_name = globals()['App_Name']
在单个python脚本中,我将使用globals()超过20次。
另外,请帮助我测量脚本执行时间。
答案 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