【发布时间】:2018-10-22 14:56:31
【问题描述】:
python 3.7
你好。
我知道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))
当我运行这段代码时,我得到:
False
True
True
False
error... :(
None
我还尝试更改 else: 语句以实际返回打印的对象,希望我的代码只是要求冗余返回,但输出是相同的。
else:
error = print("error... :(")
return error
谁能阐明None 的来源?
【问题讨论】:
-
如果您到达函数的末尾而没有点击
return,那么您的函数将返回None。此外,print返回None。因此,在这两个版本中,您的函数在特定情况下都会返回None。如果您希望它返回不同的内容,请弄清楚是什么并return它。 -
最终的
else不返回任何内容,因此返回None。 -
谢谢迈克·斯科蒂。我确信以前有人问过这个问题,但找不到。对不起加倍:)