我在我的python函数中将list设置为全局变量,但是当我在函数外部打印它的值时,它是空的

xpcnnkqh  于 2023-03-16  发布在  Python
关注(0)|答案(1)|浏览(130)

我目前有一个类,它定义了三个函数,这些函数从指定目录中的图像提取日期和设备名称。然后,该函数根据日期和设备名称将图像复制到新的文件目录。我需要将这些新目录收集到一个列表中,这样我就可以遍历这些目录并提取单个图像来处理它们。我必须在它们“当我将提取的数据发送到Excel时,为了保持它们的分离,对它们进行了排序。我尝试在函数中通过在创建目录时附加目录来制作这些目录的列表。当在函数内部打印时,所有目录都显示出来,但是,如果在函数外部打印,列表是空白的。
我在类的外部创建了列表,然后按照here的建议在函数内部将列表赋值为全局变量,但是,列表在函数外部仍然打印为空白。

watbbzwu

watbbzwu1#

看起来你在访问函数外的目录列表时遇到了麻烦。让我给你一个简单的例子,告诉你如何使用类来实现这一点,并保持你的代码有组织。
假设你有一个名为ImageProcessor的类负责处理图像,它有一个名为sort_images的方法根据日期和设备名将图像分类到目录中,我们可以创建一个目录列表作为类的属性,并在类之外访问它。
下面是一个例子:

class ImageProcessor:
    def __init__(self):
        self.directories = []  # Initialize an empty list to store the directories

    def sort_images(self):
        # Your code to sort images and create directories based on date and device name
        # Let's assume you have created a directory called 'dir1'
        dir1 = "path/to/dir1"
        self.directories.append(dir1)
        # Similarly, for other directories, just append them to the list

    def process_images(self):
        for directory in self.directories:
            # Your code to process images in each directory
            pass

# To use the class:
processor = ImageProcessor()
processor.sort_images()

# Now you can access
the list of directories outside the function and even outside the class
print(processor.directories)

# Then you can process the images
processor.process_images()

在这个例子中,我们创建了一个类ImageProcessor,它的属性是directories,用来存储目录列表。sort_images()方法在创建目录时将其添加到列表中。你可以使用processor.directories在类之外访问目录列表。
然后,process_images()方法可以遍历这些目录,并提取各个映像以进行处理。
这样,您就不需要使用全局变量,并且通过将相关功能保留在类中来保持代码的组织性。

相关问题