#!/usr/bin/env python # coding: utf-8 # # < [Widgets Events](05.00-Widget_Events.ipynb) | [Contents](00.00-index.ipynb) | [*OPTIONAL* Password generator: `observe`](05.02-OPTIONAL-Widget_Events_2_--_bad_password_generator,_version_1.ipynb) > # # *OPTIONAL* Three approaches to events # The next series of notebooks presents three ways of handling widget events. In each of the notebooks we'll construct the same simple password generator. # # The first uses a mix of functions and global variables, an approach like that in the notebook introducing widget events. # # The second separates the logic of the password generation from the password generation user interface. # # The third takes that separation a step further by using a class for the user interface, a class for the logic, and a class to bring them together. # # < [Widgets Events](05.00-Widget_Events.ipynb) | [Contents](00.00-index.ipynb) | [*OPTIONAL* Password generator: `observe`](05.02-OPTIONAL-Widget_Events_2_--_bad_password_generator,_version_1.ipynb) >