我有一个采用日期时间格式或单一日期时间格式元组的函数,其签名如下所示
`datetime_formats: Union[Tuple[str, ...], str] = (ISO_8601_FORMAT, ...) -> None
在__init__
中,我有一个简单的
if isinstance(datetime_formats, str)
datetime_formats = tuple(datetime_formats)
导致我发现在字符串上调用Tuple
会将字符串拆分为一个元组,并在字符串中每个字符包含一个元素
>>> tuple('%Ztest')
('%', 'Z', 't', 'e', 's', 't')
我该怎么办
>>> tuple('%Ztest')
('%Ztest',)
答案 0 :(得分:1)
要么使用方括号声明列表,要么
>>> tuple(['%Ztest'])
('%Ztest',)
或者使用逗号进行隐式元组声明
>>> '%Ztest',
('%Ztest',)
如果使用显式列表声明,则会遇到相同的拆分行为
>>> tuple(list('%Ztest'))
('%', 'Z', 't', 'e', 's', 't')