问题描述
VS Code 中的代码完成和智能感知对我来说绝对是太糟糕了。在每种语言中。我安装并更新了扩展程序,但它总是绝对垃圾。
import pandas as pd
data_all = pd.read_csv(DATA_FILE,header=None)
data_all. (press tab)
没有建议。
你真的不知道它是一个 Pandas DataFrame 对象,它的字面意思是上面的那一行吗?
我在 python 中遇到了这个问题,在 ruby/rails 中,我尝试使用完成的几乎所有语言都是绝对垃圾。我有破坏其他扩展的扩展吗?代码就这么糟糕吗?为什么莫名其妙的没用?
当前安装:
abusaidm.html-s
nippets@0.2.1
alefragnani.numbered-bookmarks@8.0.2
bmewburn.vscode-intelephense-client@1.6.3
bung87.rails@0.16.11
bung87.vscode-gemfile@0.4.0
castwide.solargraph@0.21.1
CoenraadS.bracket-pair-colorizer@1.0.61
donjayamanne.python-extension-pack@1.6.0
ecmel.vscode-html-css@1.10.2
Felixfbecker.PHP-debug@1.14.9
Felixfbecker.PHP-intellisense@2.3.14
Felixfbecker.PHP-pack@1.0.2
formulahendry.auto-close-tag@0.5.10
golang.go@0.23.2
groksrc.ruby@0.1.0
k--kato.intellij-idea-keybindings@1.4.0
KevinRose.vsc-python-indent@1.12.0
Leopotam.csharpfixformat@0.0.84
magicstack.Magicpython@1.1.0
miguel-savignano.ruby-symbols@0.1.8
ms-dotnettools.csharp@1.23.9
ms-mssql.mssql@1.10.1
ms-python.python@2021.2.636928669
ms-python.vscode-pylance@2021.3.1
ms-toolsai.jupyter@2021.3.619093157
ms-vscode.cpptools@1.2.2
rebornix.ruby@0.28.1
sianglim.slim@0.1.2
VisualStudioExptTeam.vscodeintellicode@1.2.11
wingrunr21.vscode-ruby@0.28.0
Zignd.html-css-class-completion
@1.20.0
解决方法
如果您检查 read_csv()
方法的 IntelliSense(将鼠标悬停在它上面),您将看到它返回一个 DataFrame
对象
(function)
read_csv(reader: IO,sep: str = ...,#Okay... very long definition but scroll to the end...
float_precision: str | None = ...) -> DataFrame
但是如果您使用 IntelliSense 检查变量 data_all
import pandas as pd
data_all = pd.read_csv(DATA_FILE,header=None)
在python中被列为默认数据类型:Any
。这就是您的编译器不生成自动完成功能的原因。
因此,您只需明确地告诉编译器它实际上是一个 DataFrame
对象,如图所示。
import pandas as pd
from pandas.core.frame import DataFrame
DATA_FILE = "myfile"
data_all:DataFrame = pd.read_csv(DATA_FILE,header=None)
# Now all autocomplete options on data_all are available!
在您意识到 read_csv()
方法被许多定义重载并且其中一些以 Any
类型返回对象之前,编译器为何无法猜测此示例中的数据类型,这似乎很奇怪。因此,除非另有说明,否则编译器会假设最坏的情况并将其视为 Any
类型的对象。