在Python中,我们可以使用装饰器(decorator)来定义静态变量。装饰器可以用来修改一个类成员的特性,包括将其标记为静态。
下面是一个使用装饰器定义静态变量的例子:
def static_var(varname):
    def decorator(func):
        setattr(func, varname, None)
        return func
    return decorator
 
@static_var("counter")
def my_static_counter():
    my_static_counter.counter += 1
    return my_static_counter.counter
 
my_static_counter.counter = 0
 
# 测试
print(my_static_counter())  # 输出: 1
print(my_static_counter())  # 输出: 2在这个例子中,static_var 是一个装饰器工厂,它接受一个变量名作为参数。decorator 是一个嵌套的装饰器函数,它将一个名为 varname 的新属性设置到被装饰的函数上。my_static_counter 是一个使用了装饰器的函数,它现在拥有了一个名为 counter 的静态变量。最后,我们给 counter 变量赋初始值0,并调用了两次 my_static_counter 函数,观察计数器的值增加。