好吧问题是这样的:
class A():
def foo() -> B:
pass
class B():
def bar() -> A:
pass
这将引发NameError:未定义名称“B” .
所以为了类型检查,我不愿意改变 - > B到 - >“B” . 那么有什么解决方法吗?
为了进一步讨论,我真的看不出注释中的任何一点如“def foo(a:'x',b:5 6,c:list) - > max(2,9):”(IN PEP 3107) . 为什么地狱python威胁这些注释表达?
2 回答
我发现了一种解决方法,与c / c非常相似
在Pycharm 3中测试过
好吧,没有办法使用注释语法直接执行它,但可以修改函数对象的
__annotations__
字典 .