在Python3中键入“接口”的正确方法是什么
在以下示例中:
class One(object):
def foo(self) -> int:
return 42
class Two(object):
def foo(self) -> int:
return 142
def factory(a: str):
if a == "one":
return One()
return Two()
键入factory
函数返回值的正确方法是什么
它应该类似于“一个名为foo
的单一方法的类型,它不接受任何参数并返回一个整数”
但我不知道该怎么做
UPD:这个问题专门用于打字
->
在python中实际上没有什么作用与方法签名中的表示类型类似:
语法实际上只是一种注释代码的方法。从概念上讲,您可以通过在构造函数中引发异常来实现某种接口
但是,由于python不是一种强类型的语言,您将无法获得所需的类型严格性的好处
Edit: Python doesn't use static typing.
您可以使用} ,它是python类型暗示系统支持的一部分,因此
typing.Union
,但是,听起来您确实想要结构类型而不是名义类型Python supports this using ^{mypy
将理解它,例如:注意,结构化类型非常适合Python的duck类型风格。Python的类型系统既支持结构形式,也支持名义形式
相关问题 更多 >
编程相关推荐