神秘的无类型出现

时间:2018-10-22 14:56:32

标签: python function nonetype

python 3.7

你好。
我知道lls %>% purrr::map(function(x) invoke(x, "getPath") %>% invoke("toString")) 是什么都没有返回的结果,但是我不明白为什么在这段代码的末尾会得到None的返回。我看不到任何未完成的东西。

None

运行此代码时,我得到:

def test(a, b):
    if a == True and b == True:
        return False
    elif a == True or b == True:
        return True
    elif a == False and b == False:
        return False
    else:
        print("error... :(")

print(test(True, True))
print(test(True, False))
print(test(False, True))
print(test(False, False))
print(test(None, False))

我还尝试过更改else:语句,以实际返回打印对象,希望我的代码只是要求冗余返回,但输出是相同的。

False
True
True
False
error... :(
None

有人能阐明 else: error = print("error... :(") return error 的来源吗?

1 个答案:

答案 0 :(得分:1)

您的else语句打印出“ error ... :(”行,​​但是您也尝试打印该函数的结果。要么让该函数处理打印但不返回任何内容(从主体中删除打印语句),或让函数返回要打印的字符串,而不是从函数中打印出来(如下所示)。

def test(a, b):
if a == True and b == True:
    return False
elif a == True or b == True:
    return True
elif a == False and b == False:
    return False
else:
    return "error... :("

print(test(True, True))
print(test(True, False))
print(test(False, True))
print(test(False, False))
print(test(None, False))