繁体   English   中英

将* class *作为函数参数传递

[英]Passing the *class* as function argument

我以前从未做过,而且看起来很笨拙,但是我已经测试过并且可以正常工作。 这是可以的形式吗:

from audio.models import audio
from document.models import pdf

def count_object_by_sha1(object_type, sha1):
    return object_type.objects.filter(sha1=sha1).count()

pdf_count = count_object_by_sha1(pdf, 'somesha1valuehere')
audio_count = count_object_by_sha1(audio, 'somesha1valuehere')

因此,基本上,我将类传递给函数,并使用它对一个或另一个django对象进行查询。 感觉就像是骇客……但是它可以使我的代码变得相当简单。

在遇到函数调用问题中的可变对象之后 ,我对使用函数参数做一些奇怪的事情有点不高兴。

那不是你在做什么。 您传递的是类,而不是模块。 pdf显然是Django模型类,因为它具有objects属性。

不管哪种方法都可以。 类和模块是一流的对象,完全可以将它们传递,在函数中使用它们等。

暂无
暂无

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

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