New submission from Eric Hopper:

The types.coroutine decorator for Python 3.6 (and I suspect for Python 3.6.1 as 
well) simply monkey patches the function it's passed and then returns it. This 
results in behavior that I found somewhat surprising.

def bar():
   yield 5

foo = types.coroutine(bar)

foo is bar

And, so now both foo and bar are now awaitable. I wasn't really expecting this, 
and while it's minor, it also doesn't really seem like the right thing to do.

----------
components: asyncio
messages: 290518
nosy: Omnifarious, yselivanov
priority: normal
severity: normal
status: open
title: types.coroutine monkey patches original function
type: behavior
versions: Python 3.6

_______________________________________
Python tracker <rep...@bugs.python.org>
<http://bugs.python.org/issue29909>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to