尝试将pydle与asyncio结合使用。几个月前,我的代码现在运行良好,现在我无法运行它了。
@asyncio.coroutine
class MyOwnBot(pydle.Client):
async def on_connect(self):
await self.join('#new')
iclient = MyOwnBot('testeee', realname='tester')
loop = asyncio.get_event_loop()
asyncio.ensure_future(iclient.connect('irc.test.net', 6697, tls=True,tls_verify=False), loop=loop)
但是我得到这个错误:
asyncio.ensure_future(iclient.connect('irc.test.net', 6697, tls=True, tls_verify=False), loop=loop)
AttributeError: 'generator' object has no attribute 'connect'
最佳答案
pydle
库takes care of the event loop for you。同样,将整个类标记为协程也不起作用;类不是工作单元,类上的方法是。
为了确保跨Python版本的兼容性,该库包括它的own async
handling module:
import pydle
class MyOwnBot(pydle.Client):
@pydle.coroutine
def on_connect(self):
yield self.join('#new')
iclient = MyOwnBot('testeee', realname='tester')
iclient.connect('irc.test.net', 6697, tls=True, tls_verify=False)
Client.connect()
方法开始循环(但是如果需要在其他地方使用相同的循环,则可以传递一个)。关于python - AttributeError:'generator'对象没有属性'connect'Pydle,Asyncio,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44007989/