python中调用函数之前的“例程”函数

2024-09-30 16:30:13 发布

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

世界

我正在用python创建一个名为FBST的类。它具有以下属性:

class FBST:

    def __init__(self, x, verbose=False):

        self._rejected_met = []
        self._acceptance_met = []
        self._acceptance_bar = []
        self._rejected_bar = []
        self.x = x
        self.verbose = verbose

如您所见,它有4个不同的列表。这4个列表存储有关名为_chain()的函数的信息。每次调用chain()方法时,我都必须“清理”这4个列表,将它们中的每一个再次转换为空列表。我使用下面的代码来完成这个清理过程


def chain(self):

    #cleaning the attributes
    for att in dir(self):
        if att.startswith("_"):
            setattr(self, att, [])

在函数的调用中,是否有一种更“pythonic”的方法来处理这个循环


Tags: 方法函数selfchain列表verbose属性def
1条回答
网友
1楼 · 发布于 2024-09-30 16:30:13

与其依赖于变量的特定命名约定,不如将它们放在字典中

class FBST:

    def __init__(self, x, verbose=False):
        self.acc_rej = {
            "rejected_met": [],
            "accepance_met": [],
            "rejected_bar": [],
            "acceptance_bar": []
        }
        self.x = x
        self.verbose = verbose

    def chain(self):
        for key in self.acc_rej:
            self.acc_rej[key] = []
        ...

相关问题 更多 >