Python 如何在触发后执行函数
我想构建一个函数,该函数在x个游戏(运行)后执行 因此,如果运行%5==0,我将设置Python 如何在触发后执行函数,python,Python,我想构建一个函数,该函数在x个游戏(运行)后执行 因此,如果运行%5==0,我将设置,但我注意到,函数不是执行一次而是执行多次(这不是我的意图) 代码如下: def update_weights(self, run): if run % UPDATE_MODEL == 0: weights = self.model.get_weights() self.target_model.set_weights(weights)
,但我注意到,函数不是执行一次而是执行多次(这不是我的意图)
代码如下:
def update_weights(self, run):
if run % UPDATE_MODEL == 0:
weights = self.model.get_weights()
self.target_model.set_weights(weights)
print("Updated Model")
while True:
run += 1
while True:
step += 1
more code...
if done:
break
update_weights()
当我运行此代码时,它会打印:
Updated Model
Updated Model
Updated Model
...
(这就是我首先注意到这一点的原因)确保每次运行只调用一次update\u weights
,在第二个嵌套while循环中无限期地调用它
我相信它应该在第一个while循环中。您永远不会传递update\u权重
参数,step
&run
是未定义的。您这里的代码应该在几个方面出错。话虽如此,你确定它每一轮都在更新吗?在update\u weights
中的if
之外添加一个打印项以进行双重检查。@Error-syntactical懊悔只是说。。。我认为你的名字是你评论的一部分,作为链接。因为它很合身comment@Error-语法自责:如果是def update_weights():
这将起作用,前提是在正确的范围内调用函数(定义了self
和run
)。无论如何,我想说这个问题需要澄清,这样才能弄清楚实际问题是什么。@fuppes先生,我同意这两种说法。这段代码应该可以工作,但是有很多缺少的上下文,因此OP需要添加实际代码,而不是烘焙的伪代码。@错误语法自责/添加:我同意您的观点,明确声明函数参数是更好的做法。