函数返回值

函数返回值通过 return 语句 来实现,调用函数时,返回 return 语句之后表达式的值,没有 return 语句或 return 语句之后为空的函数,调用函数默认返回 None。

def f(x):
    return x**2

f(2)
4
def f():
    pass

f() is None
True

函数执行到 return 语句,则结束当前函数的调用,可以通过条件判断,返回特定结果:

def f(x=None):
    if x == None:
        return 0 # 使用默认值调用函数,接下来的代码将不被执行
    print(f'x={x}') 
    if x != None:
        return f'x²={x**2}'
    
f()
0
f(2)
x=2


'x²=4'

return 之后的表达式可以是多个表达式用逗号隔开(其实是一个元组),可用赋值语句分别接收返回值:

def f(x):
    return sum(x), max(x), min(x)
f([1,2,3,4])
(10, 4, 1)
sum_x, max_x, min_x = f([1,2,3,4])
sum_x, max_x, min_x
(10, 4, 1)

返回值可以是任何值。如果 return 之后的表达式中包含函数自身的调用,则该函数称为递归函数。详见 递归函数

# 返回函数自身
def f(x):
    print(x)
    return f

f(1)(2)(3)
1
2
3


<function __main__.f(x)>
# 返回函数自身的调用
def f(x):
    if x == 0:
        return 0
    else:
        print(x-1)
        return f(x-1)
    
f(3)
2
1
0


0