我应该如何正确地记录我的类容器?

2024-04-20 04:51:29 发布

您现在位置:Python中文网/ 问答频道 /正文

我有以下情况:

class A():
    def __init__(self, log = True):
        self.log = log

    def __call__(self):
        if self.log:
             self.log ='\n'    # whatever no-Null string to reinitialize the log attribute at each call
        do_things()
             self.log += 'I did things'

class B()
    def __init__(self):
        self.a = A(log = True) 
        self.log_master = []

    def __call__(self):
        for i in range(num):
            self.a()
            self.log_master.append(a.log)
            self.log_master.append('other things')
        save_to_file(self.log_master)

所以我有一个类B,它是用类A的实例初始化的B调用A。调用类A时,它初始化一个字符串,该字符串用作记录操作的容器。调用结束时,B检查A的日志字符串,并将其附加到log_master以及其他内容。在一切结束时log_master被保存到文件中。基本上我有两个类,其中一个用作另一个实例的容器。双方在编写日志文件时“协作”

我能感觉到这种方法的恐怖。我的A代码被难看的“if self.log:…”弄得乱七八糟。生成一个像样的、可定制的日志文件的正确方法是什么