"""
演示闭包
"""
# 闭包,现象,
# 装饰器

"""
两个函数的嵌套, 
内部函数使用到了外部函数的数据(变量), 这个现象就可以称之为产生闭包。
"""

# def a():  # 外部函数
#     num1 = 10
#     def b():  # 内部函数
#        num2 = num1  + 20
#        print(num2)
#
#
# a()  # 调用函数 : 1,去函数内部执行里面的代码,, 2 代码执行完毕之后,他本身就代表着返回值


# 引用
# def demo1():
#     print('这是在demo1里面的......')

"""
 xxx  <<< demo2 
test  >>> 000  <<< demo1
"""

# 引用函数
# demo2 = demo1  # 代表函数内部代码的引用,  demo2此时也指向了demo1里面的内部代码
#
# def test():
#     print('这是在test里面的.....')
#
# demo1 = test  # 重新指向的操作   理解赋值赋值
#
# # 调用函数
# demo1()  # 这是在test里面的.....
# demo2()  # 这是在demo1里面的......
# test()   # 这是在test里面的.....

"""
代码自上而下一行一行执行,,,,函数的定义不会执行里面的代码,,,
a()  # 调用函数 : 1,去函数内部执行里面的代码,, 2 代码执行完毕之后,a()他本身就代表着返回值
a  代表的 那片 保存代码的内存空间
a() 
return b  和 return b()的区别?  
"""

# def demo():
#     print(1)
#     print(2)
#     return 3
#
# i = demo() # 3
# print(i)

"""
1 多看
2 多理解
3 多操作
$ 多花时间
"""










































































































