簡體   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