2016-11-07 67 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