函数作用域 闭包 纯函数

>函数作用域

作用域是指变量的使用范围,如果变量只能在本函数使用,那称为局部变量,在代码非函数定义的变量就是全局变量,全局变量可以由多个函数或者代码使用。

globals 函数和locals函数

globals()获取所有全局变量

locals ()获取所有局部变量

>纯函数

1.纯函数的概念:

简单来说,一个函数的返回结果只依赖于它的参数,并且在执行过程里面没有副作用,我们就把这个函数叫做纯函数

2.纯函数的三个原则:

变量只在函数作用域内获取,作为函数的参数传入

不会产生副作用,不会改变被传入的数据或者其它数据(全局变量)

相同的输入保证相同的输出(不管在什么时候调用,传入的参数相同,返回的结果就相同)

3.函数的副作用

副作用是指函数被调用,完成了函数既定的计算任务,但同时因为访问了外部数据,尤其是因为对外部数据进行了写操作,从而一定程度的改变了系统环境

>闭包

​ 满足闭包条件:

​ 条件1 :函数中嵌套函数

​ 条件2:外层函数只返回嵌套函数的函数名

​ 条件3:内存嵌套函数有引用外层的一个非全局变量

​ 作用: 实现数据的锁定 提高稳定性

def func(i):
    count = 0
    def count_1(count):
        count = count + 1
        print(count)
    return count_1
res = func(1)
res(7)  # 可以调用count_1函数  传入的i不是全局变量

posted @ 2022-04-11 23:42  饭兜  阅读(24)  评论(0编辑  收藏  举报