我正在重构一个将各种日期格式(即 ISO 8601 字符串、 、 等)转换datetime.date为datetime.datetimeUnix 时间戳的函数。
我希望使用新函数@singledispatch而不是类型检查,但我不知道如何保留前一个函数的类型提示:
import datetime\nfrom typing import Union\n\n\nMyDateTimeType = Union[int, str, datetime.datetime, datetime.date, None]\n\n\n# How do I retain this functionality with @singledispatch?\n# \xe2\xac\x87\xef\xb8\x8f\xe2\xac\x87\xef\xb8\x8f\xe2\xac\x87\xef\xb8\x8f\xe2\xac\x87\xef\xb8\x8f\xe2\xac\x87\xef\xb8\x8f\xe2\xac\x87\xef\xb8\x8f\xe2\xac\x87\xef\xb8\x8f\ndef to_unix_ts(date: MyDateTimeType = None) -> Union[int, None]:\n """Convert various date formats to Unix timestamp..."""\n if type(date) is int or date is None:\n return date\n\n if type(date) is str:\n # Handle string argument...\n\n elif type(date) is datetime.datetime:\n # Handle datetime argument...\n\n elif type(date) …Run Code Online (Sandbox Code Playgroud)