Can somebody explain function annotations for me? spam = None bacon = 42 def monty(a:spam, b:bacon) -> "different": pass What's the point of this? It also seems like super ugly syntax to me, not pythonic. It looks like Ruby! Yuck.
Annotations provide a loosely organized way to introduce type checking to your inputs and outputs. They serve as built-in documentation and IDE hinting mechanism, but also provide the ability break early when the function's I/O contract is broken. IMO they are awesome and quite Pythonic.