使用Python类型提示指定“所有”类型

时间:2019-10-02 08:35:44

标签: python python-3.x

如果我在Python中将变量注释为能够具有两种类型的 ,则可以根据以下问题使用typing.Union

  

How to specify multiple return types using type-hints

但是,我该如何注释一个变量,因为它必须同时具有两种类型的两者

用例

这有点人为,因为在这个小例子中,我们只能定义一个TwoCourseMenu类。但是,如果我们有 n 个接口,那么我们真的不想定义 n × n 个组合。

我要用表示全部的某种东西替换Union任何)。

from typing import Union

class BasicMeal:
    def main_name( self ):
        return "spam"

class IWithDesert:
    def desert_name( self ):
        raise NotImplementedError()

class TwoCourseSpamMenu( BasicMeal, IWithDesert ):
    def desert_name( self ):
        return "spam"

def present( input: Union[BasicMeal, IWithDesert] ):
    print( f"You're having '{input.main_name()}' followed by '{input.desert_name()}'." )

present( TwoCourseSpamMenu() )

0 个答案:

没有答案