如何从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 (将#修改为@)

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...