微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决如何从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 举报,一经查实,本站将立刻删除。