如果我在Python中将变量注释为能够具有两种类型的 ,则可以根据以下问题使用typing.Union
:
但是,我该如何注释一个变量,因为它必须同时具有两种类型的两者?
用例
这有点人为,因为在这个小例子中,我们只能定义一个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() )