有状态的函数

平常我们写的都是无状态函数,都是易于理解的

其实我们是可以给函数加状态的:这里给出三种方式,实现有状态的函数

1、全局变量

  这是我们最先能想到的,易理解,但其实也是最不提倡的一种方式

2、闭包

  相比于全局变量,封装性更好一些,不会污染全局的命名空间

 1 def get_num():
 2     num = 0
 3 
 4     def _get_num():
 5         nonlocal num
 6         num += 1
 7         return num
 8 
 9     return _get_num
10 
11 
12 g = get_num()
13 print(g())
14 print(g())

output:
    1
    2

3、类

  在实例方法内改变状态

综上比较提倡后两者

 

posted on 2023-03-10 09:40  默玖  阅读(37)  评论(0编辑  收藏  举报

导航