Skip to content
Advertisement

Polymorphism and Type Hints in Python

Consider the following case:

JavaScript

Let’s say I’m calling get_base_instance in a context where I kow it will return a Sub instance – maybe based on what args I’m passing. Now I want to pass the returned instance to do_something_with_sub:

JavaScript

The problem is that my IDE complains about passing a Base instance to a method that only accepts a Sub instance.

I think I remember from other programming languages that I would just cast the returned instance to Sub. How do I solve the problem in Python? Conditionally throw an exception based on the return type, or is there a better way?

Advertisement

Answer

I think you were on the right track when you thought about it in terms of casting. We could use cast from typing to stop the IDE complaining. For example:

JavaScript
User contributions licensed under: CC BY-SA
1 People found this is helpful
Advertisement