在Python项目中某些第三方库没有代码补全的解决办法

在使用第三方库的时候可能某些库因为写法原因,再加上python语言本身的特性,导致编辑器里面无法很好的获取到某个变量的类型信息,因此无法提供代码提示补全功能,例如使用Pillow库的时候:

from PIL import Image

im = Image.open(imPath)

im.是没有补全提示的,解决办法有下面几个:

1.如果使用的python版本是3.5或以上,可以使用类型标注功能,例如

函数接受并返回一个字符串,注释像下面这样:

def greeting(name: str) -> str:

    return 'Hello ' + name

在函数 greeting 中,参数 name 预期是 str 类型,并且返回 str 类型。子类型允许作为参数。

同样的,声明变量也是如此,例如

im = Image.open(imPath) 可以写成这样 im:Image.Image = Image.open(imPath) ,为什么是Image.Image呢?是因为第一个Image本身是个模块名,第二个Image是类名,我们用于注解的时候需要的是类名而不是模块名,因此需要这样写。

如果需要使用原始类型,需要先引入原始类型

from typing import TypeVar, Iterable, Tuple, Dict, List

更多内容参考:https://docs.python.org/zh-cn/3/library/typing.html

2.使用类型注释 #type:类型

例如:

from PIL import Image

im = Image.open(imPath) #type:Image.Image

3.使用assert isinstance(变量,类型)

例如:

from PIL import Image

im = Image.open(imPath)

以上三种方法都不会对python的运行产生影响,仅仅是用于编辑器解析和提供代码补全功能,如果使用的是3.5以上版本的Python,推荐使用第一种方法。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容