Python Twisted 框架学习问题汇总

1. 使用Eclipse+Pydev时,有大量的方法在使用时编辑器会报Undefined variable错误,并下标红线,但实际上,运行并没有问题。如twisted.internet.reactor中的一些方法。

原因:
这是一个与Eclipse/Pydev执行静态分析方式相关的已知问题。
如果跳转到reactor源代码可以看到,在导入时,twisted.internet模块中实际上不存在reactor对象。模块为空。
当eclipse/pydev试图编译字节码时,静态分析在twisted.internet模块中看不到reactor对象,并将其标记为未定义的变量,即使它实际上在运行时存在(twisted是怎么实现的还得好好看看源码才行,现在是一头雾水)

解决方法:
在对报错的行的末尾写入: #@UndefinedVaria,这样可以让eclipse忽略错误,如

reactor.run() #@UndefinedVariable