diff --git a/python/typehint.py b/python/typehint.py index d34ad9851e5373c610674d989bb4d74f08f7e95d..5e425831ea0e49fd8cc8b4cfb0e278c49f06d346 100644 --- a/python/typehint.py +++ b/python/typehint.py @@ -6,6 +6,20 @@ 离谱 """ +""" +PEP-526对此进行了解释: +在同一个函数作用域中尝试注解受global或nonlocal约束的变量是非法的: + +def f(): + global x: int # SyntaxError +def g(): + x: int # Also a SyntaxError + global x + +原因是global和nonlocal不拥有变量;因此,类型注解属于拥有该变量的作用域。 +解决方案是在函数外部(即在全局命名空间中)注解变量,并删除函数范围内的类型注解 +""" + a = None def global_init():