Python静态变量,python如何设置变量
众所周知,Python语言不支持静态变量,比如下面的应用场景:
voidfoo(){
static intcount=0;
数数;
}这个功能在Python中无法自然实现。换个角度看这个问题,函数中的静态变量其实可以看作是函数的内部变量,而不是调用过程中产生的局部变量。因此,这里有一种方法可以通过使用装饰器将这样的内部变量添加到函数中。
defstatic_vars(**kwargs):
defdecorate(func):
forkinkwargs:
setattr(func,k,kwargs[k])
returnfunc
Returndecorate这是一个Python decorator,由@ syntax调用,在函数外面再包装一层,相当于给函数增加了内部变量。你可以这样使用这个装饰器。例如,如果我们要实现上面的想法,给foo函数添加一个计数器,有
@static_vars(计数器=0)
deffoo():
O.counter=1其实如果一定要通过内部变量来实现静态效果的话,可以直接定义类来实现,但是decorator省略了很多细节,可以通过**kwargs添加任意类型,任意数字,实现起来比较简单。
许多python培训视频可以在流行的IT软件开发工作室获得。欢迎在线学习!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。