类型提示pytz时区

问题描述 投票:0回答:1

我有一个返回

pytz.timezone('...')
对象的函数。返回的类型提示应该是什么?

def myfunc() -> ????:
  return pytz.timezone('UTC')

一般来说,我们应该如何从已安装的模块中键入提示对象?

python-3.x type-hinting pytz
1个回答
0
投票

由于您已将参数硬编码为

timezone
,因此您知道结果将是
pytz.UTC
的实例。

def myfunc() -> pytz.UTC:
    return pytz.timezone('UTC')

如果直到运行时才知道参数,例如,

def myfunc(tz: str) -> ...:
    return pytz.timezone(tz)

你能做的最好的事情就是使用为

timezone
本身定义的相同返回类型,这可以在 Typeshed 中找到。 (存根文件似乎在存根本身中定义了部分类型,而不是使用实际库中定义的类型。我没有深入研究源代码以确切了解应该使用什么或如何使用;我把它留作练习给读者。)

© www.soinside.com 2019 - 2024. All rights reserved.