python经典百题之static定义静态变量的方法
在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
函数,观察计数器的值增加。
评论已关闭