Explicitly typed attributes for Python
The traits package developed by Enthought provides a special type definition called a trait. Although they can be used as normal Python object attributes, traits also have several additional characteristics: * Initialization: A trait can be assigned a default value. * Validation: A trait attribute's type can be explicitly declared. * Delegation: The value of a trait attribute can be contained either in another object. * Notification: Setting the value of a trait attribute can trigger notification of other parts of the program. * Visualization: User interfaces that permit the interactive modification of a trait's value can be automatically constructed using the trait's definition. Python 3 version.