# 内部函数: 就是在函数中定义的函数
def outer():
def inner():
print("inner 函数")
print(inner, id(inner))
return inner
f = outer()
print(f, id(f))
f()
# 闭包
def outer(n):
def inner():
print(n) # 对于 inner 函数来说, n 是外部变量
print("inner 函数")
return inner
f = outer(10)
f()
# f 函数就叫闭包
# 闭包就是含有外部变量的函数
def foo():
print("千锋教育")
def outer(n):
def inner():
print("*" * 10)
n()
print("*" * 10)
return inner
# 开放封闭原则
# 开放: 开发程序允许增加功能
# 封闭: 运行随意更改原来的代码结构和定义
foo = outer(foo) # inner
print(foo)
foo()
# 语法糖# 定义装饰器
def outer(func):
def inner(*args, **kwargs):
print("*" * 10)
r = func(*args, **kwargs)
print("*" * 10)
return r
return inner
@outer
def foo(a, c=10):
print("千锋教育 %s %s" % (a, c))
return 'hello'
r = foo(13, 20)
print(r)
python3-内部函数-闭包-装饰器示例
最新推荐文章于 2024-07-23 10:28:35 发布