Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/visual-studio-code/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在';具有as';陈述_Python_Visual Studio Code - Fatal编程技术网

Python 在';具有as';陈述

Python 在';具有as';陈述,python,visual-studio-code,Python,Visual Studio Code,我有一个如下的函数来获取托管资源: 从contextlib导入contextmanager @上下文管理器 def getMyClass()->MyClass: ... obj=。。。 尝试: 产量目标 ... 除: ... 最后: ... 通过为getMyClass函数指定类型,我想这个Get对象可以在with…as语句中识别,如下所示: 使用getMyClass()作为对象: obj.fun1() 但是,VSCode无法识别obj的类型,并且未显示intellisense弹出菜单。有

我有一个如下的函数来获取托管资源:


从contextlib导入contextmanager
@上下文管理器
def getMyClass()->MyClass:
...
obj=。。。
尝试:
产量目标
...
除:
...
最后:
...
通过为getMyClass函数指定类型,我想这个Get对象可以在with…as语句中识别,如下所示:


使用getMyClass()作为对象:
obj.fun1()
但是,VSCode无法识别obj的类型,并且未显示intellisense弹出菜单。有可能得到我需要的东西吗


PS:我还检查了PyCharm,它也不会显示intellisense弹出菜单。

这在技术上取决于您使用的intellisense提供商(Jedi或语言服务器)。对于后者,.

是否
getMyClass
实际上是一个上下文管理器?看看你的代码,它似乎是一个正常的函数。试图将其用作上下文管理器时,会引发AttributeError。@shmee我更清楚地修改了代码。谢谢。根据我的PyCharm测试,正确的返回类型注释应该是
->ContextManager[MyClass]
,其中
ContextManager
是从
键入模块导入的。我现在很犹豫是否将此作为一个答案,因为我确信,这是一个复制品。然而,这个答案似乎从未在实际的上下文中使用过
None
以外的类型。我想先等对方的意见。