"Routine" 函数在调用 python 中的函数之前
"Routine" function before the call of a function in python
世界!
我正在 python 中创建一个名为 FBST
的 class。它具有以下属性:
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()
方法时,都必须 "clean" 这 4 个列表,将它们中的每一个再次变成一个空列表。我正在使用以下代码来进行此清洁过程。
def chain(self):
#cleaning the attributes
for att in dir(self):
if att.startswith("_"):
setattr(self, att, [])
在函数的开头是否有更多 "pythonic" 方法来处理这个循环?
不要依赖变量的特定命名约定,而是将它们放在字典中。
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] = []
...
世界!
我正在 python 中创建一个名为 FBST
的 class。它具有以下属性:
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()
方法时,都必须 "clean" 这 4 个列表,将它们中的每一个再次变成一个空列表。我正在使用以下代码来进行此清洁过程。
def chain(self):
#cleaning the attributes
for att in dir(self):
if att.startswith("_"):
setattr(self, att, [])
在函数的开头是否有更多 "pythonic" 方法来处理这个循环?
不要依赖变量的特定命名约定,而是将它们放在字典中。
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] = []
...