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

Python performance: Pass in very large object into function, or use global varaibles?

我有一张非常大的 Pillow 图像 (1920x~40,000),我正在对其进行一些操作,将图像存储为全局变量并让我的函数从中引用它是否更好?在那里,或者每秒多次将图像传递给函数?

例如:

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 传递所传递对象的引用,因此它不会复制传递的图像。由于引用非常小,您在此处使用全局不会看到任何性能提升。