python-3.x 类型提示pytz timezone

svdrlsy4  于 2023-03-31  发布在  Python
关注(0)|答案(1)|浏览(111)

我有一个返回pytz.timezone('...')对象的函数。例如下面的函数,返回值的类型提示应该是什么?

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

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

py49o6xq

py49o6xq1#

由于您已经将参数硬编码为timezone,因此您知道结果将是pytz.UTC的示例。

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

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

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

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

相关问题