example-code-2e/24-class-metaprog/checked/metaclass/checked_demo.py
2021-09-10 12:34:39 -03:00

26 lines
604 B
Python
Executable File

#!/usr/bin/env python3
# tag::MOVIE_DEMO[]
from checkedlib import Checked
class Movie(Checked):
title: str
year: int
box_office: float
if __name__ == '__main__':
movie = Movie(title='The Godfather', year=1972, box_office=137)
print(movie)
print(movie.title)
# end::MOVIE_DEMO[]
try:
# remove the "type: ignore" comment to see Mypy error
movie.year = 'MCMLXXII' # type: ignore
except TypeError as e:
print(e)
try:
blockbuster = Movie(title='Avatar', year=2009, box_office='billions')
except TypeError as e:
print(e)