繁体   English   中英

将自身传递给函数

[英]passing self to a function

这段代码在一个类中。 我需要访问类自身中定义的变量。 我如何将自身传递给entry_deletion_images_delete?

    @receiver(pre_delete, sender=Document, dispatch_uid='document_delete_signal')
    def entry_deletion_images_delete(sender, instance, using, **kwargs):
        for key, value in self.SIZES.items():
            os.remove(self.base_dir + instance.image_main.name)

由于此函数使用内置参数,因此无法简单地将self作为新参数。

您正在向@receiver()传递一个未绑定的函数。 您应该为它传递一个绑定方法,如下所示:

class MyClass(object):
    def entry_deletion_images_delete(self, sender, instance, using, **kwargs):
        ...

instance = MyClass()
pre_delete.connect(instance.entry_deletion_images_delete, sender=Document, dispatch_uid='document_delete_signal')

换句话说,首先您必须创建一个实例(否则将是self ?),然后可以将实例方法注册为信号的接收者。

我所显示的只是一个例子。 如何实际创建实例以及何时连接接收器取决于您的用例。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM