gpt4 book ai didi

python - 基于变量类型的条件字符串表示

转载 作者:行者123 更新时间:2023-11-30 22:25:04 26 4
gpt4 key购买 nike

我想创建一个 datetime 对象的字符串表示形式,该对象可能包含 None 值。到目前为止,我想出了一个解决方案,但我正在寻找一种更好/更干净的方法。

假设我有以下两个变量:

import datetime as dt

a = None
b = dt.datetime(2017, 11, 30)


def str_format(str):
return '{:%Y-%m-%d}'.format(str)

以下内容将返回格式化字符串:

str_format(b)
'2017-11-30'

但是以下命令会返回错误:

str_format(a)
TypeError: unsupported format string passed to NoneType.__format__

到目前为止,我可以提出以下解决方案:

def str_format(str):
if isinstance(str, type(None)) is False:
return '{:%Y-%m-%d}'.format(str)
else:
return '{}'.format(str)

str_format(a)
'None'

str_format(b)
'2017-11-30'

但是,我正在寻找一种更有效/更简洁的方法来编写该函数。

最佳答案

通常这些类型的东西被包装在 try/except

def str_format(str):
try:
return '{:%Y-%m-%d}'.format(str)
except TypeError:
# unrecognized type, return blank or whatever you want to return
return ''

this 上的答案问题解释了为什么您通常使用 try/except 而不是相当好的条件检查。

关于python - 基于变量类型的条件字符串表示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47641938/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com