为什么我的 Python 代码中出现 TypeError?

发布于 2024-10-09 09:47:02 字数 500 浏览 0 评论 0原文

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

爱的故事 2024-10-16 09:47:02

两个错误

1) 你的类没有 __init__ 函数。要么加一,要么改用这个:

decayer = tasks.Decayer()

2) 您试图计算一个整数的浮点数次方,但 ^ 表示异或,不能用于浮点数。使用 ** 代替 ^

y = 2 ** x

Two errors

1) Your class doesn't have an __init__ function. Either add one, or use this instead:

decayer = tasks.Decayer()

2) You are trying to raise an integer to the power of a float, but ^ means xor and cannot be used on floats. Use ** instead of ^:

y = 2 ** x
亣腦蒛氧 2024-10-16 09:47:02

该问题似乎是由于 decayer =tasks.Decayer(r) 调用和tasks.Decayer 未设计为接受参数,因为 Task 没有定义 __init__ 方法可以取其中一个。

The problem seems due to decayer = tasks.Decayer(r) call and tasks.Decayer is not designed to take a argument, because Task does not define a __init__ method which can take one.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文