← Back to context

Comment by setopt

4 hours ago

Either you add type hints to your function and should expect it to be type checked, or you don’t add type hints and remain free to use duck typing as you want.

But not receiving as much as a warning when you violate type hints is the worst of both worlds.

Duck typing isn’t completely incompatible with type checking btw. Haskells type classes are an elegant solution to that, for example.

Python protocols work great for duck typing as well. You can specify exactly how an object has to quack without constraining it to an avian family tree.