如何从Python中的回调函数更新类实例属性?

问题描述

我正在研究使用Python的优化技术,因为唯一参数集的数量很高,所以我试图使用tqdm状态栏对象来跟踪已完成的参数计算的数量。但是,我发现很难从我正在使用的回调函数中更新tqdm状态栏。我试图为tqdm对象使用“全局”变量实例化,也试图在我创建的类中使用return,而不是将tqdm对象作为属性。由于回溯会引发名称错误,因此它们似乎都无法正常工作:名称“ tqdm_object未定义”。我的代码结构如下:

if __name__=="__main__":
    class_instance = Main_Class()
    class_instance.build_params(--lists of variables--)
    # global tqdm_object
    tqdm_object = class_instance.status_bar()
    class_instance.callback(some_function)


class Main_Class:
    def status_bar(self):
        return tqdm(desc='Optimization Runs',total=10000,smoothing=0.5,position=0,leave=False)
       # self.tqdm_bar = tqdm(desc='Optimization Runs',leave=False)
    

def some_function(**params):
    --some calculations and saving results--
    tqdm_object.update()

既不能使用global,也不能访问self.tqdm_bar(即从some_function()内部访问class_instance.tqdm_bar.update())。有没有办法可以在Python中做到这一点?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)