我正在try 自动完成类实例的方法参数名,但无法完全理解.以这门课为例:

class Abc:
    def meth(param):
        pass

如果我键入Abc.meth(p并按Tab键,我会看到param=的预期完成:

enter image description here

然而,如果我try 对Abc().meth(p类的一个实例执行同样的操作,我在完成结果中看不到param:

enter image description here

我在JupyterLab和VS代码中都看到了相同的行为,而且这适用于其他包的实例,比如scikit learn,我认为我缺少了一些东西.

enter image description here

如何为我的Abc()类的一个实例(类似于上面的LinearRegression类)获得方法参数完成?

推荐答案

基于JupyterLab 3.2.9版的实验,这似乎是因为autocomplete试图考虑隐式参数,如selfcls.包含self个参数应该可以解决大部分问题.

class Abc:
    def meth(arg1, arg2, arg3):
        pass

以下是我为上述课程提供的完成选项:

Decorator Abc.meth Abc().meth
None arg1, arg2, arg3 arg2, arg3
@staticmethod arg1, arg2, arg3 arg2, arg3
@classmethod arg2, arg3 arg3

标准行为是好的,但Abc().meth的结果在两个装饰师身上都是错误的.如staticmethodclassmethod的文件所述:

方法可以在类(如C.f())或实例(如C())上调用.f())

所以当使用decorator时,这两个列应该是相同的,但它总是从Abc().meth中省略一个参数,大概是self.尽管在使用@classmethod时,Abc.meth正确地处理了cls,但它最终在Abc().meth中忽略了两个参数.


使用VisualStudio代码1.67.1进行的测试为所有情况提供了正确的自动完成选项.因此,您在那里体验到的缺失建议是预期行为,因为param取代了self,并且没有其他参数.

Python相关问答推荐

numba jitClass,记录类型为字符串

如何使用matplotlib在Python中使用规范化数据和原始t测试值创建组合热图?

' osmnx.shortest_track '返回有效源 node 和目标 node 的'无'

当从Docker的--env-file参数读取Python中的环境变量时,每个\n都会添加一个\'.如何没有额外的?

ODE集成中如何终止solve_ivp的无限运行

Godot:需要碰撞的对象的AdditionerBody2D或Area2D以及queue_free?

如果值发生变化,则列上的极性累积和

从一个系列创建一个Dataframe,特别是如何重命名其中的列(例如:使用NAs/NaN)

使用Python更新字典中的值

Scrapy和Great Expectations(great_expectations)—不合作

如何使用scipy的curve_fit与约束,其中拟合的曲线总是在观测值之下?

当我try 在django中更新模型时,模型表单数据不可见

网格基于1.Y轴与2.x轴显示在matplotlib中

如何编辑此代码,使其从多个EXCEL文件的特定工作表中提取数据以显示在单独的文件中

read_csv分隔符正在创建无关的空列

遍历列表列表,然后创建数据帧

在Pandas 中以十六进制显示/打印列?

为什么在生成时间序列时,元组索引会超出范围?

使用Scikit的ValueError-了解

搜索结果未显示.我的URL选项卡显示:http://127.0.0.1:8000/search?";,而不是这个:";http://127.0.0.1:8000/search?q=name";