I think it's great that for built-in types such as int and str, backward compatibility of type hinting annotations is baked into python 3.0 to 3.4. In fact, I *thought* python 3.0 to 3.4 would *ignore* annotations, but it doesn't...
I'm struggling to create something backward compatible that requires the 'typing' module. For example, the following program is good in python 3.5, but line 11 is a syntax error in python 3.4: 1 import sys 2 3 if sys.version_info[0] < 3: 4 raise RuntimeError("Must use at least python version 3") 5 6 # The 'typing' module, useful for type hints, was introduced in python 3.5 7 if sys.version_info[1] >= 5: 8 from typing import Optional 9 10 11 def divider(x: int, y: int) -> Optional[float]: 12 if y == 0: 13 return None 14 return x / y 15 16 print("22 / 7 = " + str(divider(22, 7))) 17 print("8 / 0 = " + str(divider(8, 0))) 18 When I run this program in python 3.4, I get this: Traceback (most recent call last): File "./ned.py", line 11, in <module> def divider(x: int, y: int) -> Optional[float]: NameError: name 'Optional' is not defined -- https://mail.python.org/mailman/listinfo/python-list