为什么 Python 的 VS Code IntelliSense 建议不对所有相同类型的变量自动完成?
Why VS Code IntelliSense for Python suggest autocomplete not for all variables of the same types?
使用库 pandas 运行 发现 VS Code 无法始终处理建议的显示。更具体地说,当直接从 class 创建 DataFrame 对象时,IntelliSense 建议自动完成没有问题。
但是当使用 read_excel
等方法创建对象时,IntelliSense 不会显示对象的自动完成建议。
在 PyCharm 中工作没有这样的问题。
在这种情况下是否可以配置 VSCode 以显示自动完成?
你问的问题与'type inference'有关。 IDE 可以从函数的工作原理或先前分配给变量的内容中推断出函数结果或变量的类型。然而,由于 Python 不是一种静态类型语言,这并不总是那么容易,需要对 IDE 的一部分做一些简单的工作,而对于困难的情况则需要大量的工作,这就解释了差异你看。由于 PyCharm 非常成熟、专注 Python IDE,因此它比 VSCode(它有自己的不同优势)做得更好。
如果这是关于您自己的代码,一个解决方案是在您的代码中包含类型提示,帮助 IDE 确定什么类型应该进入或离开某些东西。但由于这是关于第三方库的,您可以提交请求,他们添加类型提示并等待,或者尝试找出导致 VSCode 在此代码上失去弹珠的代码的原因。
如果您发现具体问题是什么,这里并非没有办法改进 VSCode 的行为,但更有可能需要更改代码。解决方案的编写方式也可能导致无法确定地推断类型(这就是 IDEs 处理的问题)。考虑向保存结果的变量添加类型声明,以使自动完成(以及一些警告和错误检查)更好地工作。
使用库 pandas 运行 发现 VS Code 无法始终处理建议的显示。更具体地说,当直接从 class 创建 DataFrame 对象时,IntelliSense 建议自动完成没有问题。
read_excel
等方法创建对象时,IntelliSense 不会显示对象的自动完成建议。
你问的问题与'type inference'有关。 IDE 可以从函数的工作原理或先前分配给变量的内容中推断出函数结果或变量的类型。然而,由于 Python 不是一种静态类型语言,这并不总是那么容易,需要对 IDE 的一部分做一些简单的工作,而对于困难的情况则需要大量的工作,这就解释了差异你看。由于 PyCharm 非常成熟、专注 Python IDE,因此它比 VSCode(它有自己的不同优势)做得更好。
如果这是关于您自己的代码,一个解决方案是在您的代码中包含类型提示,帮助 IDE 确定什么类型应该进入或离开某些东西。但由于这是关于第三方库的,您可以提交请求,他们添加类型提示并等待,或者尝试找出导致 VSCode 在此代码上失去弹珠的代码的原因。
如果您发现具体问题是什么,这里并非没有办法改进 VSCode 的行为,但更有可能需要更改代码。解决方案的编写方式也可能导致无法确定地推断类型(这就是 IDEs 处理的问题)。考虑向保存结果的变量添加类型声明,以使自动完成(以及一些警告和错误检查)更好地工作。