python
The traits package from the Enthought Tool Suite provides a
metaclass with special attributes that are called traits. A trait
is a type definition that can be used for normal Python object
attributes, giving the attributes some additional characteristics:
* Initialization: A trait attribute can have a default value
* Validation: A trait attribute is manifestly typed.
* Delegation: The value of a trait attribute can be contained in another
object
* Notification: Setting the value of a trait attribute can fired
callbacks
* Visualization: With the TraitsUI package, GUIs can be generated
automatically from traited objects.
traits