1
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
4

2 回答 2

7

两个错误

1)您的班级没有__init__功能。要么加一个,要么改用这个:

decayer = tasks.Decayer()

2)您试图将整数提高到浮点数的幂,但^意味着 xor 并且不能用于浮点数。使用**代替^

y = 2 ** x
于 2010-12-30T10:13:51.053 回答
2

问题似乎是由于decayer = tasks.Decayer(r)调用和任务造成的。Decayer 并非旨在接受参数,因为Task没有定义__init__可以接受参数的方法。

于 2010-12-30T10:18:38.137 回答