2016-11-07 7 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"として渡されます。 "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