python 代码提示

2020/09/02 技术

python 代码提示

1. 为无源码对象提供类型提示

在跨语言开发时, 返回的对象, 由于没有 python 源码, 无法提供代码提示.

这时, 可以定义一个假的对象, 声明其方法, 并标注类型, 帮助进行代码提示.

import unittest


class DemoObj:

    # noinspection PyPep8Naming
    def getName(self) -> str: ...

    # noinspection PyPep8Naming
    def doSomething(self, input_value: int) -> int: ...


class TestTypeHint(unittest.TestCase):
    def setUp(self) -> None:
        pass

    def _get_unknown_obj(self):
        """ 模拟返回一个来自根据 so 构造的对象 """

        class X:
            def __init__(self):
                self.name = "X"

            def getName(self):
                return self.name

            def doSomething(self, input_value):
                return input_value * input_value

        return X()

    def testTypeHint(self):
        """ """
        obj: DemoObj = self._get_unknown_obj()
        print(obj.getName())
        print(obj.doSomething(input_value=10))

2. 获取 annotations


def add(a: int, b: int) -> int:
    return a + b


print(add.__annotations__)
# {'a': <class 'int'>, 'b': <class 'int'>, 'return': <class 'int'>}

Search

    Table of Contents