一个函数正在接收许多值,这些值都是字符串,但需要以各种方式进行解析,例如
vote_count = int(input_1)
score = float(input_2)
person = Person(input_3)
这一切都很好,除了输入也可以是None
,在这种情况下,我不想解析赋值给左边的None
。这可以用
但这似乎不太可读,尤其是像这一行这样的重复行。我正在考虑定义一个函数来简化这个过程,比如
def whendefined(func, value):
return func(value) if value is not None else None
可以像
vote_count = whendefined(int, input_1)
...
我的问题是,有没有一个共同的成语?可能使用内置的Python函数?即使没有,这样的函数是否有一个常用的名称?在
在其他语言中有一个Option typing,它有点不同(解决了类型系统的问题),但是有相同的动机(如何处理null)。
在Python中,更多的是关注这种事情的运行时检测,因此可以用一个无检测保护(而不是Option typing所做的数据)来包装函数。
您可以编写一个仅在参数不是None时才执行函数的修饰符:
您可能应该调整第三行,使之更适合您正在处理的数据类型。
使用中:
^{pr2}$还有一个返回值
^{3}$或者包装一个类型构造函数
如果可以安全地将falsy值(如0和空字符串)视为None,则可以使用boolean和:
因为看起来像是用字符串作为输入,所以这可能是可行的;无论如何,您不能将空字符串转换为int或float(或person)。虽然这个习惯用法在Lua中经常使用,但对于某些人来说,它并不太可读。
相关问题 更多 >
编程相关推荐