Skip to main content
 首页 » 编程设计

python之你能在python函数中有成员变量吗

2025年05月04日17yjmyzz

我想知道是否有办法在函数实例中包含成员变量。例如,

incr_instance = incrementor(1) 
incr_instance() 
incr_instance() 
incr_instance() 

打印出来

1 
2 
3 

是的,我知道我可以只使用一个类,但这是一个关于 python 语言中奇怪的语言怪癖的问题。

请您参考如下方法:

你可以有一个函数 incrementor 返回另一个不断增加计数器 n 的函数(内部函数使用 nonlocal n 来访问 n 而不是使用 incrementor.n):

def incrementor(n): 
  def inc(): 
    nonlocal n 
    n += 1 
    return n - 1 
  return inc 

测试:

incr_instance = incrementor(1) 
incr_instance_2 = incrementor(10) 
 
print(incr_instance()) 
print(incr_instance()) 
print(incr_instance()) 
print(incr_instance_2()) 
print(incr_instance_2()) 
print(incr_instance_2()) 
print(incr_instance()) 
print(incr_instance()) 
print(incr_instance()) 
print(incr_instance_2()) 
print(incr_instance_2()) 
print(incr_instance_2()) 

输出:

1 
2 
3 
10 
11 
12 
4 
5 
6 
13 
14 
15