gpt4 book ai didi

Python静态变量生成器函数

转载 作者:行者123 更新时间:2023-11-30 23:13:51 25 4
gpt4 key购买 nike

我使用以下函数在 Python 中生成静态变量:

 #Static variable generator function
def static_num(self):
k = 0
while True:
k += 1
yield k

当我从主代码调用此函数时:

 regression_iteration = self.static_num()
print " Completed test number %s %s \n\n" % (regression_iteration, testname)

我得到这个输出:

  "Completed test number <generator object static_num at 0x027BE260>  be_sink_ncq"

为什么我没有得到递增的整数?我的静态变量生成器哪里出了问题?

编辑:

我现在按以下方式调用函数 static_num:

regression_iteration = self.static_num().next()

但它仅返回“1”,因为每次调用该函数时“k”的值都被初始化为零。因此,我在每次调用函数时都没有得到所需的输出 1,2,3,4 ....

最佳答案

很难说您是否需要使用这种方法——我强烈对此表示怀疑,但是您可以滥用可变类型作为默认初始化程序,而不是生成器:

def counter(init=[0]):
init[0] += 1
return init[0]

x = counter()
print(x) # 1
print(x) # 1
print(x) # 1
x = counter()
print(x) # 2
print(x) # 2
print(x) # 2
# ... etc

counter 的返回值每次调用都会加一,从 1 开始。

关于Python静态变量生成器函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29092576/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com