微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

VS Code - 完成很糟糕,这是我的设置吗?

如何解决VS Code - 完成很糟糕,这是我的设置吗?

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 类型的对象。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。