导语:
本文主要介绍了关于python怎么设置静态变量的相关知识,包括python局部静态变量,以及python nonlocal这些编程知识,希望对大家有参考作用。
众所周知,Python语言是不支持静态变量的,比如下面的应用场景:
void foo() {
static int count = 0;
count ++;
}
在 Python 中没有自然的方法可以做到这一点。换个角度看这个问题,函数中的static变量其实可以看成是函数的内部变量,而不是调用时产生的局部变量。所以这是一种使用装饰器将这样的内部变量添加到函数的方法。
def static_vars(**kwargs):
def decorate(func):
for k in kwargs:
setattr(func, k, kwargs[k])
return func
return decorate
这是一个Python装饰器,通过@语法调用并包裹一个函数,相当于给函数添加了内部变量。这个装饰器可以这样使用,比如我们要实现上面的想法,给foo函数加一个计数器,有
@static_vars(counter = 0)
def foo():
foo.counter += 1
其实如果一定要通过内部变量来实现静态效果,可以直接定义类来实现,但是装饰器省略了很多细节,通过**kwargs可以添加任意类型任意数字,实现起来比较简单.
众多
视频,尽在python学习网,欢迎在线学习!
本文为原创文章,版权归知行编程网所有,欢迎分享本文,转载请保留出处!
你可能也喜欢
- ♥ python循环出现elif错误是什么原因11/03
- ♥ 如何设置中文版Python?09/16
- ♥ 如何编写一个python加法程序08/25
- ♥ 如何在 Ubuntu 中卸载 Python 3.510/02
- ♥ python print的多种用途10/08
- ♥ Python如何在一个canvas中绘制多个图表?11/29
内容反馈