Python基础-高级-返回函数

来源:互联网 发布:媒体监测数据 编辑:程序博客网 时间:2024/05/17 22:39

返回函数

带返回结果的函数

示例

#!/usr/bin/env python3# -*- coding: utf-8 -*-# Python 返回函数# 求和,返回值def sum(x, y):    return x + yprint(sum(1,2))

运行结果

D:\PythonProject>python run.py3

lazy 返回函数

延迟返回结果的函数

示例

#!/usr/bin/env python3# -*- coding: utf-8 -*-# Python 返回函数# 懒加载-求和def lazy_sum(x, y):    def sum():        return x+y    return sum# 调用lazy_sum()时,返回的并不是求和结果,而是求和函数f = lazy_sum(1,2)# 调用函数f时,才真正计算求和print(f())

运行结果

D:\PythonProject>python run.py<function sum at 0x03C38870>3

闭包(Closure)

我们在函数lazy_sum中又定义了函数sum,并且,内部函数sum可以引用外部函数lazy_sum的参数和局部变量,当lazy_sum返回函数sum时,相关参数和变量都保存在返回的函数中,这种称为“闭包

上述 每次调用都会返回一个新的函数,即使传入相同的参数
示例

#!/usr/bin/env python3# -*- coding: utf-8 -*-# Python 返回函数# 懒加载-求和def lazy_sum(x, y):    def sum():        return x+y    return sum# 调用lazy_sum()时,返回的并不是求和结果,而是求和函数print(lazy_sum(1,2))f1 = lazy_sum(1,2)print(f1())f2 = lazy_sum(1,2)print(f2())# 每次调用都会返回一个新的函数,即使传入相同的参数# 所以返回是Falseprint(f1 == f2)

结果

D:\PythonProject>python run.py<function sum at 0x04128870>33False