美文网首页
Python中的静态变量

Python中的静态变量

作者: 天涯西剑 | 来源:发表于2019-08-15 10:00 被阅读0次

什么是静态变量?

静态变量Static Variable)在计算机编程领域指在程序执行前系统就为之静态分配(也即在运行时中不再改变分配情况)存储空间的一类变量。

静态变量有什么用?

如名所示,当我们许村静态的,持久的变量时,我们就应该使用静态变量。比如计量某一函数调用了多少次(计数器),比如希望函数总是返回同一变量(懒得传入变量又不想使用global,那样显得不够优雅)

如何实现静态变量效果?

Python中没有static关键词,所以无法直接显式的表明函数的静态变量。
考虑到Python中的类具有自己的类变量,而这个与类的实例区分开来,具有一定的持久性,所以可以这么做:

class get_static:
    static_var = np.array([1,2])

理论上来说,类变量已经可以实现静态变量的效果了。

print(get_static.static_var,id(get_static.static_var))
# 修改变量
get_static.static_var[0] += 1
print(get_static.static_var,id(get_static.static_var))

输出为:

[1 2] 1847752110768
[2 2] 1847752110768

可以看到内存id没有发生变化

这样就可以通过类来实现静态变量,但是如果只是想实现一个带静态变量的函数的话,classA.func()的调用形式还是不够舒服,但是可以通过 fun2 = classA.func的形式实现fun2()的方便的调用形式。

但是我就是想直接实现fuc3怎么办,当然也是可以的,因为python中处处是对象!!!

def get_static():
    if not hasattr(get_static,"static_var"):
        get_static.static_var = 1000
    return get_static.static_var

相关文章

网友评论

      本文标题:Python中的静态变量

      本文链接:https://www.haomeiwen.com/subject/ntrajctx.html