首页 > 后端开发 > Python教程 > 如何在 Python 函数中模拟静态变量?

如何在 Python 函数中模拟静态变量?

DDD
发布: 2024-12-16 19:03:16
原创
219 人浏览过

How Can I Simulate Static Variables in Python Functions?

Python 函数中的静态变量:模仿 C/C

在 C/C 中,函数可以声明静态变量来维护函数调用之间的状态。另一方面,Python 默认情况下不支持函数内的静态变量。

在 Python 函数中实现静态变量

要复制 Python 函数内静态变量的行为,请使用以下命令方法:

<br>def foo():<pre class="brush:php;toolbar:false">if not hasattr(foo, "counter"):
    foo.counter = 0
foo.counter += 1
print("Counter is", foo.counter)
登录后复制

这里,我们检查函数内是否存在“counter”属性。如果不存在,我们将其初始化为 0。此初始化代码在第一个函数调用开始时执行。

装饰器方法

为了增强可读性,将初始化代码移至顶部,可以使用装饰器:

<br>def static_vars(**kwargs):<pre class="brush:php;toolbar:false">def decorate(func):
    for k in kwargs:
        setattr(func, k, kwargs[k])
    return func
return decorate
登录后复制

@static_vars(counter=0)
def foo():

foo.counter += 1
print("Counter is", foo.counter)
登录后复制

类作用域影响静态变量吗?

放置函数在类内部不会改变静态变量的实现。静态变量仍然是特定于函数的,而不是特定于类的。

以上是如何在 Python 函数中模拟静态变量?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板