Python3 未将 'self' 添加到 class 函数调用
Python3 not adding 'self' to class function call
我在 python 3.4 中有这个 asyncio class:
class Type1:
def __init__(s,websocket,path,flds,MyId):
global TypeOnes
s.ws=websocket
s.pt=path
s.iId=flds
s.ID=MyId
s.cnt=0
TypeOnes[MyId]=s
s.Q=asyncio.Queue
@asyncio.coroutine
def handlerIn(s,rxed):
#yield from s.Q.put(rxed) # gave error missing positional 'item'
#yield from s.Q.put(item=rxed) # gave error missing positional 'self'
yield from s.Q.put(self=s.Q,item=rxed) # gave error TypeError: _consume_done_getters() missing 1 required positional argument: 'self'
调用 HandlerIn 时,我似乎无法调用 Q.put,请参阅注释代码以了解尝试和结果。
就好像自己没有被正确插入
我在调试器中,我已经检查了变量的内容:
(handlerIn)>>> s.Q
<class 'asyncio.queues.Queue'>
(handlerIn)>>> rxed
'Button'
我认为问题在于您还没有创建 asyncio.Queue
的实例。应该是
s.Q=asyncio.Queue()
我在 python 3.4 中有这个 asyncio class:
class Type1:
def __init__(s,websocket,path,flds,MyId):
global TypeOnes
s.ws=websocket
s.pt=path
s.iId=flds
s.ID=MyId
s.cnt=0
TypeOnes[MyId]=s
s.Q=asyncio.Queue
@asyncio.coroutine
def handlerIn(s,rxed):
#yield from s.Q.put(rxed) # gave error missing positional 'item'
#yield from s.Q.put(item=rxed) # gave error missing positional 'self'
yield from s.Q.put(self=s.Q,item=rxed) # gave error TypeError: _consume_done_getters() missing 1 required positional argument: 'self'
调用 HandlerIn 时,我似乎无法调用 Q.put,请参阅注释代码以了解尝试和结果。
就好像自己没有被正确插入
我在调试器中,我已经检查了变量的内容:
(handlerIn)>>> s.Q
<class 'asyncio.queues.Queue'>
(handlerIn)>>> rxed
'Button'
我认为问题在于您还没有创建 asyncio.Queue
的实例。应该是
s.Q=asyncio.Queue()