[英]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.