【问题标题】:Wing IDE doesn't show all methods in autocomplete bubbleWing IDE 未在自动完成气泡中显示所有方法
【发布时间】:2014-07-22 11:44:44
【问题描述】:

我喜欢 Wing IDE。但是我在自动完成方面遇到了一些问题。例如,当我尝试编写这段代码 sn-p:

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 或recv 这样的方法:

我做错了吗?

【问题讨论】:

    标签: python wing-ide


    【解决方案1】:

    这是因为 socket.py 中的 SocketType 或 _socketobject 是在运行时部分动态组装的,而我们的静态分析引擎无法解释该代码(它位于 Python 2.7.6 中 socket.py 的第 226 行,它迭代了 _socketmethods向 _socketobject 添加方法;位置可能因确切的 Python 版本而异,但它可能就在所有这些中的 _socketobject 的常规类定义之后。

    解决这个问题的一种方法是在 s = socket.socket() 之后设置一个断点并运行到它,然后自动完成器使用实时运行时状态,这样完整的内容就会在那里。像这样工作还有一个优势,您可以立即在 Wing IDE Pro 的 Debug Probe(在当前调试堆栈框架中运行的 Python shell)中试用代码。

    我还会看看我们是否可以针对静态分析案例改进这一点。我们确实对某些事情进行了手动覆盖,这种情况似乎应该添加。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-11-18
      • 2021-09-23
      • 2016-09-24
      • 2017-05-20
      • 1970-01-01
      • 2020-01-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多