"Global variable" 在多个函数中
"Global variable" in multiple functions
我正在尝试使用全局变量收集数据,但不返回变量
def collect_result(result):
is_global = "Res_collected" in globals()
if is_global == False:
global Res_collected
Res_collected = []
elif is_global == True:
Res_collected.append(result)
return
如何在另一个函数中使用或调用这个变量?
这是一个 非常糟糕的主意 使用 globals
正如 @quamrana 和 @deceze 所指出的,但如果你想尝试(请不要用于生产),我假设下面的代码应该有效:
>>> globals().setdefault('Res_collected', []).append(res)
你不需要做任何特殊的事情来读取另一个函数中的全局变量的值,你可以通过名称引用它,所以print(Res_collected)
,例如。
如果你想 写入 到全局变量,你可以按照你已经在 collect_result
函数中执行的相同方式执行此操作,方法是使用global
关键字。 This 是一本不错的入门教程。
正如其他人已经指出的那样,使用全局变量通常不是一个好主意。更好的替代方法是将您的结果集合作为参数传递给将要使用它们的任何函数。这样一来,每个函数正在读取或修改的数据就清楚明确了。
全局变量可以隐藏有关正在使用哪些数据、在何处以及如何使用的重要线索,这会使代码更难理解,并可能导致进一步的其他问题。
我正在尝试使用全局变量收集数据,但不返回变量
def collect_result(result):
is_global = "Res_collected" in globals()
if is_global == False:
global Res_collected
Res_collected = []
elif is_global == True:
Res_collected.append(result)
return
如何在另一个函数中使用或调用这个变量?
这是一个 非常糟糕的主意 使用 globals
正如 @quamrana 和 @deceze 所指出的,但如果你想尝试(请不要用于生产),我假设下面的代码应该有效:
>>> globals().setdefault('Res_collected', []).append(res)
你不需要做任何特殊的事情来读取另一个函数中的全局变量的值,你可以通过名称引用它,所以print(Res_collected)
,例如。
如果你想 写入 到全局变量,你可以按照你已经在 collect_result
函数中执行的相同方式执行此操作,方法是使用global
关键字。 This 是一本不错的入门教程。
正如其他人已经指出的那样,使用全局变量通常不是一个好主意。更好的替代方法是将您的结果集合作为参数传递给将要使用它们的任何函数。这样一来,每个函数正在读取或修改的数据就清楚明确了。
全局变量可以隐藏有关正在使用哪些数据、在何处以及如何使用的重要线索,这会使代码更难理解,并可能导致进一步的其他问题。