问题描述
有没有更优雅的方法来检查函数输出是否为假? 如果不是,如果函数代价高,第二种方法是否是好的解决方案?
def get_first_last_name(name):
if ' ' not in name:
return False
return name.split()
if get_first_last_name('John Smith'):
first_name,last_name = get_first_last_name('John Smith')
output = get_first_last_name('John Smith')
if output:
first_name,last_name = output
解决方法
第一个解决方案的主要问题是函数运行了两次。在这种情况下,这会浪费 CPU 时间,但不会浪费太多其他时间。如果该函数执行副作用(写入文件,打印到屏幕),这些影响将发生两次。由于这些原因,我无论如何都会完全避免第一种方法。
第二种方法很典型。这绝对是我在这种情况下会采用的方法,而且确实是我以前使用过很多次的方法。