我有一个简单的Python脚本,它只是将从列表列表中取出的两个数字相乘,然后将结果发送到另一个函数,然后将它们附加到列表中。下面是相同的代码:
results = []
def check_results(result):
results.append(result)
def multiply(x, y):
return x * y
if __name__ == "__main__":
numbers = [[1,1], [2,2], [3,3]]
for x, y in numbers:
check_results(multiply(x, y))
print(results)
我的问题是,在将它们添加到超出其范围的结果列表之前,我们是否应该在 check_results 函数中使用 global 关键字?
换句话说,整个代码不应该是这样的吗?
results = []
def check_results(result):
global results
results.append(result)
def multiply(x, y):
return x * y
if __name__ == "__main__":
numbers = [[1,1], [2,2], [3,3]]
for x, y in numbers:
check_results(multiply(x, y))
print(results)
如果我的理解有误,有人可以告诉我 global 关键字应该用来做什么吗?
最佳答案
Python
- 在本地范围内写入
- 从本地范围读取,如果失败,则从全局范围读取
因此,如果您想分配全局results
变量,则必须使用global results
,以指定您的意思是全局变量。
但是,由于您读取结果
,并且函数中不存在此类变量,因此会查找全局变量。
请注意,虽然您附加到 results
引用的列表,但您并没有更改实际的 results
变量本身,因此您所做的不被视为写入.
关于python - Python中global关键字的使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55535322/