import stackless
class MyTasklet(stackless.tasklet):
def __init__(self, func, msg):
pass
def foo():
pass
msg = 'hello'
MyTasklet(foo, msg)()
我正在使用stackless python
,此代码生成以下错误:
Traceback (most recent call last):
File "E:/workspace/python/test/klass.py", line 11, in <module>
MyTasklet(foo, msg)()
TypeError: tasklet() takes at most 1 argument (2 given)
这很奇怪,因为我没有调用stackless.tasklet
的构造函数。你知道吗
任何人都知道错误到底是怎么回事。你知道吗
由于问题与子类
stackless.tasklet
有关,因此可以将MyTasklet
改为可调用的object
,如下所示:编辑:或者您可以重写
__new__
,将正确的参数传递给stackless.tasklet.__new__
:不要将
stackless.tasklet
子类化。你知道吗这不是使用无堆栈Python的方法,更重要的是,与简单的方法相比,它既困难又过于复杂。任何您需要做的事情,您都应该能够在
f
,即您在tasklet中运行的函数中完成。如果您真的想创建子类,那么搜索现有的代码示例,它已经为您提供了一个基本的工作tasklet子类。你知道吗如果你真的想得到帮助,没有一个拥有stacklesspython经验的人会在这里回答问题。无堆栈Python邮件列表就是它们所在的位置。你知道吗
相关问题 更多 >
编程相关推荐