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

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

作者: 生活知识研习所 | 来源:发表于2019-04-28 18:25 被阅读0次

    在使用第三方库的时候可能某些库因为写法原因,再加上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,推荐使用第一种方法。

    相关文章

      网友评论

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

          本文链接:https://www.haomeiwen.com/subject/lsvjnqtx.html