Am 11.08.16 um 05:53 schrieb Steven D'Aprano:
How is this the same as, or different from, event-based programming? I'm
familiar with programming in an event-based language where the interpreter
itself provides an event loop and dispatches messages to your objects

I'll just comment on that one. Asynchronous programming is event based programming. In fact if you drop down to the C level, it works the same - you get callbacks when new data arives over a socket, or when a timer triggers. asyncio is just a way that makes writing stateful callback handlers easier, in the same way that generators are easier to write using "yield" than as a function with a global variable.

In typical GUI code, there are usually not that many places qhere ou have sequential code. A simple exmaple might be a counter. Using asyncio and a properly integrated GUI toolkit, you could write it as (pseudo-code)

async def counter():
        for i in range(10):
                button.settext("click me %d"%i)
                await button.click()
        
        button.disable()
        messageBox("You reached the end!")

Writing that same thing in callback code to button.on_click() is obviously less fun and feels inverted.

        Christian
--
https://mail.python.org/mailman/listinfo/python-list

Reply via email to