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