是否可以根据变量/函数命名设置类型提示?

时间:2017-05-17 17:56:54

标签: python python-2.7

我有一个自定义python框架,它递归地探索一个项目,并使用预定义的函数命名方案运行函数(有点像pytest如何运行以“test”为前缀的函数)。

当我创建框架要调用的其中一个函数时,我需要使用1个参数定义函数。此参数指定框架在调用我的函数时将传递给我的对象。

为了简单起见,让我们将这个参数称为'banana',并假设它的类型是'Banana',它在框架初始化时被实例化。该框架收集它知道需要运行的所有函数,然后逐个调用它们并将它们中的每一个传递给这个全局“香蕉”对象。

我的问题是:在我定义这些函数的脚本中,有没有办法为这个参数提供类型提示?

示例:

# The framework will search our project and run any function that is prefixed with 'fruit'

def fruit_MyFunction1(banana):
    """
    @param banana: Provided by the framework
    """

    # Ideally, I would have type hinting here, and Python would know that 'banana'
    # is of type [Banana] and provide me a list of relevant methods / parameters
    banana.do_something()

def fruit_MyFunction2(banana):
    """
    @param banana: Provided by the framework
    """

    print banana.colour

我知道.pyi文件,我想知道我是否可以设计一些以任何函数为前缀的'fruit'将假设第一个参数是[Banana]对象并相应提供类型提示。

注意:在框架在运行时识别它们之前,我不知道函数名称是什么。所以我不能简单地在.pyi文件中定义“fruit_MyFunction1”和“fruit_MyFunction2”(如上例所示),因为这些名称是任意的...我所知道的是,有些函数会有一个特定的前缀,那些我所知道的将具有所需的功能签名。

0 个答案:

没有答案