Python性能:将非常大的对象传递到函数中,还是使用全局变量?



我有一个非常大的枕头图像(1920x~ 40000),我正在做一些操作,它是更好的做法,将图像存储为一个全局变量,并有我的函数引用它从那里,或传递图像到函数多次每秒?

例如:

global very_large_image

def main_function(large_image):
global very_large_image
very_large_image = large_image
while i < large_number:
image_manipulation_function()

def image_manipulation_function():
global very_large_image
#do stuff

或:

def main_function(large_image):
while i < large_number:
image_manipulation_function(large_image)

def image_manipulation_function(very_large_image):
#do stuff

在Python3中哪个性能更好?可以忽略不计吗?

Python传递被传递对象的引用,因此它不会复制所传递的图像。由于引用非常小,所以在这里使用global不应该看到任何性能提升。