假设某个函数的函数体只有以下一行,请选择不是返回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 0 和 return 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 0、return ''、return [] |
各自的值(int、str、list) | 不是 |
return 表达式(如 return 100-20) |
表达式的计算结果 | 不是(除非结果是 None) |