from celery.task import Task
class Decayer(Task):
def calc_decay_value(self, x):
y = (1.0/(2^x))
return y
def calc_decay_time(self, x):
y = 2^x
return y
def run(self, d, **kwargs):
#do stuff.
return 0
>>> decayer = tasks.Decayer(r)
Traceback (most recent call last):
File "scanDecay.py", line 31, in <module>
decayer = tasks.Decayer(r)
TypeError: object.__new__() takes no parameters
答案 0 :(得分:7)
两个错误
1)您的班级没有__init__
功能。添加一个,或者改为使用它:
decayer = tasks.Decayer()
2)你试图将一个整数提升到浮点数的幂,但^
表示xor,不能用于浮点数。使用**
代替^
:
y = 2 ** x
答案 1 :(得分:2)
问题似乎是由decayer = tasks.Decayer(r)
调用和任务引起的.Decayer并非设计用于参数,因为Task
没有定义一个__init__
方法可以接受一个。