2016-11-07 80 views
0

我看到一些博客在網上,他們把自己的參數對他們的芹菜功能,爲什麼礦造成的錯誤,如:自參數錯誤芹菜

TypeError: xml_gr() takes exactly 1 argument (0 given) 

這裏是我的代碼:

@periodic_task(run_every=timedelta(seconds=5)) 
def xml_gr(self): 
    ftp = FTP('xxxxx') 
    ftp.login(user='xxxxx', passwd='xxxxx') 
    x = xml_operation('AGIN', GR_GLOBAL_CURRENT_DATE, ftp, "GR") 
    ftp.close() 
+1

自參數用於基於類的芹菜任務中。一旦檢查這個http://jsatt.com/blog/class-based-celery-tasks/ – neelima

回答

1

「自我「在類成員函數中使用。當在類的實例中調用成員函數時,語言會自動將類實例作爲「self」傳入。 「自我」可讓您訪問課程的成員。

class Thing: 
    var1 = None 
    def set_member(self, value): 
     self.var1 = value 

    def show_member(self, value): 
     return self.var1 

然後用法是

a = Thing() 
a.set_member(23) 
a.show_member() 

而且你會看到響應23。你不必顯式地傳入「self」變量。

當您在類外聲明函數時,沒有理由使用「self」。

+0

我實際上是在尋找一個與芹菜相關的答案,而不是實際的蟒蛇本身 –

+1

它與芹菜的情況也是如此。如果你沒有在一個類中聲明這個函數,你不要使用「self」。 self是一個語言結構,它將類實例傳遞給函數,以便您可以訪問成員。既然你沒有這樣做,你不應該告訴函數期望「自我」。這就是爲什麼它說'只需要1個參數(0給定)' – anregen