如果输出不为假,则将函数解包为变量

问题描述

有没有更优雅的方法来检查函数输出是否为假? 如果不是,如果函数代价高,第二种方法是否是好的解决方案?

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 时间,但不会浪费太多其他时间。如果该函数执行副作用(写入文件,打印到屏幕),这些影响将发生两次。由于这些原因,我无论如何都会完全避免第一种方法。

第二种方法很典型。这绝对是我在这种情况下会采用的方法,而且确实是我以前使用过很多次的方法。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...