Python 什么时候可以使用copy.deepcopy()?

Python 什么时候可以使用copy.deepcopy()?,python,coding-style,deep-copy,Python,Coding Style,Deep Copy,我正在处理一个类,它获取一定数量的图像,并对它们执行不同类型的图像操作。可以随时将图像添加到类中,以便通过类方法进行修改。图像由类实例存储在列表中。许多图像操作需要特定的模式,因此我希望所有图像都转换为相同的模式。为了实现这一点,我编写了一个应用于每个图像操作函数的包装器。每当调用函数时,包装器都会检查图像列表是否已更改,如果已更改,哪些图像是新的,需要转换。我正在使用deepcopy,但我知道它有点慢,所以我想知道我的用法是否合适,或者是否有其他方法来完成同样的事情。这是我的密码: def _

我正在处理一个类,它获取一定数量的图像,并对它们执行不同类型的图像操作。可以随时将图像添加到类中,以便通过类方法进行修改。图像由类实例存储在列表中。许多图像操作需要特定的模式,因此我希望所有图像都转换为相同的模式。为了实现这一点,我编写了一个应用于每个图像操作函数的包装器。每当调用函数时,包装器都会检查图像列表是否已更改,如果已更改,哪些图像是新的,需要转换。我正在使用deepcopy,但我知道它有点慢,所以我想知道我的用法是否合适,或者是否有其他方法来完成同样的事情。这是我的密码:

def _compwrapper(func):
    '''Checks to see if self.comp is defined before calling any image
    manipulation functions.'''

    def wrapped(self):
        if self.images: #if any images have been added
            if not self.oldimages: #if this isn't set, none have been converted
                self._convert(self.images)
                self.oldimages = copy.deepcopy(self.images)

            elif self.oldimages != self.images:
                diff = list(set(self.images) - set(self.oldimages))
                self._convert(diff)
                self.oldimages = copy.deepcopy(self.images)

            func(self)
        else:
            logging.info("Add some images before you try to do that!")

    return wrapped

如有任何建议,将不胜感激。这是我第一个用Python编写的“严肃”程序,所以我正在尽可能多地学习好的实践。如果需要进一步澄清,请告诉我。

为什么不在插入时转换图像?@user2357112:我考虑过这样做,但添加图像的方法不属于执行操作的类。我不希望“检索”类有任何可以修改图像的方法(但是修改图像的类是检索类的子类)。这有意义吗?