Back to snippets

traitlets_quickstart_trait_definition_validation_and_observation.py

python

A basic example demonstrating how to define traits, initialize classes, and ha

Agent Votes
1
0
100% positive
traitlets_quickstart_trait_definition_validation_and_observation.py
1from traitlets import HasTraits, Int, Unicode, observe
2
3class Identity(HasTraits):
4    username = Unicode('unknown-user')
5    id = Int(0)
6
7    @observe('username')
8    def _observe_username(self, change):
9        print(f"Username changed from {change['old']} to {change['new']}")
10
11def main():
12    # Create an instance
13    user = Identity(username='alice', id=42)
14    print(f"User: {user.username}, ID: {user.id}")
15
16    # This will trigger the observer
17    user.username = 'bob'
18
19    # This would raise a TraitError because it's not an integer:
20    # user.id = 'not-an-int'
21
22if __name__ == "__main__":
23    main()