Type annotations частично отсутствуют, docstrings (например, в Google-стандарте - нет... Нафига наследование, непонятно. Или у вас пьющие животные будут? Та же фигня с наследованием бутылки от сосуда и его испольщование в качестве параметра в функциях. Нет проверки на отрицательное количества жидкости в бутылке.
Andy_U, это тонкости, которые я не учитывал. Наследование - для маштабирование. Пьют не только люди, но животные, птицы, насекомые. Из сосудов есть еще чашки, кружки и тд и тп. Я просто попытался быстро накидать и коротко мое виденье решения задачи в MVC формате
AthonD, Ну и чем процесс питья у животных отличается от человека? Т.е., добавьте в Entity тип существа и хватит пока. Та же фигня с чашками, стаканами и пр. Добавьте к Vessel тип посуды и опять пока хватит.
Не надо преждевременно усложнять.