2024-06-08 09:55:19 发布
网友
我喜欢永德。但我在自动完成方面有些问题。例如,当我尝试编写以下代码片段时:
import socket s = socket.socket() s.connect(("rutracker.org",80)) s.send('GET / HTTP/1.0\n\n') answer = s.recv(1024)
Wing帮助我并自动完成socket.socket()。但当我键入s.时,它找不到send或{}这样的方法:
socket.socket()
s.
send
我做错什么了吗?在
这是因为插座.py是在运行时部分动态组装的,而我们的静态分析引擎无法解释该代码(位于插座.py在Python2.7.6中,它在socketmethods上迭代以将方法添加到_socketobject中;位置可能因Python的确切版本而异,但可能只是在它们中的\u socketobject的常规类def之后)。在
处理此问题的一种方法是在s=插座.插座()并运行到它,然后自动完成程序使用实时运行时状态,以便完整的内容将出现在那里。这样做还有一个好处,你可以马上在Wing idepro的Debug Probe(一个运行在当前调试堆栈框架中的pythonshell)中测试代码。在
我还将看看我们是否可以对静态分析案例进行改进。我们确实有一些东西的手动覆盖,这个案例似乎应该添加。在
这是因为插座.py是在运行时部分动态组装的,而我们的静态分析引擎无法解释该代码(位于插座.py在Python2.7.6中,它在socketmethods上迭代以将方法添加到_socketobject中;位置可能因Python的确切版本而异,但可能只是在它们中的\u socketobject的常规类def之后)。在
处理此问题的一种方法是在s=插座.插座()并运行到它,然后自动完成程序使用实时运行时状态,以便完整的内容将出现在那里。这样做还有一个好处,你可以马上在Wing idepro的Debug Probe(一个运行在当前调试堆栈框架中的pythonshell)中测试代码。在
我还将看看我们是否可以对静态分析案例进行改进。我们确实有一些东西的手动覆盖,这个案例似乎应该添加。在
相关问题 更多 >
编程相关推荐