Python return 的返回值

假设某个函数的函数体只有以下一行,请选择不是返回None的选项。( )

A.return None

B.return

C.return 0

D.100 - 20

逐个分析:

A. return None

  • 显式返回 None 返回 None

B. return

  • 不带返回值的 return,默认返回 None 返回 None

C. return 0

  • 显式返回整数 0 不是返回 None(返回的是 int 类型 0)

D. 100 - 20

  • 函数体只有这一行,没有 return 语句

  • 在 Python 中,没有 return 的函数默认返回 None 返回 None

容易混淆的点

很多人会把 return 0return None 搞混,但:

  • return 0 → 返回整数 0(类型是 int)

  • return None → 返回 None(类型是 NoneType)

  • return → 返回 None

  • 没有 return → 返回 None

验证代码:

复制代码
def func_a():
    return 0

result = func_a()
print(result)       # 0
print(type(result)) # <class 'int'>

铁律 1:看有没有 return

  • 没有 return → 必返回 None

  • return → 看 return 后面有没有东西

铁律 2:看 return 后面跟什么

return 写法 返回值 是否 None
return(后面啥也没有 None
return None None
return 0return ''return [] 各自的值(int、str、list) 不是
return 表达式(如 return 100-20 表达式的计算结果 不是(除非结果是 None)