gpt4 book ai didi

python - 格式化也可以为 None 的数值

转载 作者:行者123 更新时间:2023-11-28 17:05:49 35 4
gpt4 key购买 nike

我正在寻找一种更好的方法来处理像这样的语句中的可选 None 值(缺失值):

logger.info("temp1 = %.1f, temp2 = %.1f, position = %.2f", t1, t2, pos)

为了防止:

TypeError: must be real number, not NoneType

This is what I'm doing now:

logger.info(
"temp1 = %s, temp2 = %s, position = %s",
"null" if t1 is None else format(t1, '.1f'),
"null" if t2 is None else format(t2, '.1f'),
"null" if pos is None else format(pos, '.2f'))
# any placeholder like "null", "None", "---", or "N/A" is fine

我不喜欢。有没有更好的办法?使用 str.formatf-strings 解决这个小问题也会有所帮助。

最佳答案

创建一个包装器,在调用 __format__ 时进行 self 检查。

class AnyOrNone(object):  # The wrapper is not type-specific
def __init__(self, value):
self.value = value

def __format__(self, *args, **kwargs):
if self.value is None:
return "None"
else:
return self.value.__format__(*args, **kwargs)

关于python - 格式化也可以为 None 的数值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51126115/

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