我有一个返回
pytz.timezone('...')
对象的函数。返回的类型提示应该是什么?
def myfunc() -> ????:
return pytz.timezone('UTC')
一般来说,我们应该如何从已安装的模块中键入提示对象?
由于您已将参数硬编码为
timezone
,因此您知道结果将是 pytz.UTC
的实例。
def myfunc() -> pytz.UTC:
return pytz.timezone('UTC')
如果直到运行时才知道参数,例如,
def myfunc(tz: str) -> ...:
return pytz.timezone(tz)
你能做的最好的事情就是使用为
timezone
本身定义的相同返回类型,这可以在 Typeshed 中找到。 (存根文件似乎在存根本身中定义了部分类型,而不是使用实际库中定义的类型。我没有深入研究源代码以确切了解应该使用什么或如何使用;我把它留作练习给读者。)