知行编程网知行编程网  2022-12-30 02:30 知行编程网 隐藏边栏  19 
文章评分 0 次,平均分 0.0
导语: 本文主要介绍了关于python怎么设置静态变量的相关知识,包括python局部静态变量,以及python nonlocal这些编程知识,希望对大家有参考作用。

如何在python中设置静态变量

众所周知,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学习网,欢迎在线学习!

本文为原创文章,版权归所有,欢迎分享本文,转载请保留出处!

知行编程网
知行编程网 关注:1    粉丝:1
这个人很懒,什么都没写
扫一扫二维码分享