我在python的一个文件中有一个Neuron类:
class Neuron:
def __init__():
......
def other function():
......
def __repr__(self, level=0):
gap = '\t'*level
_printable = "{}position {} -- map dimensions {} -- input dataset {} element(s) -- level {} \n".format(
gap,
self.position,
self.__weight_map[0].shape,
self.input_dataset.shape[0],
level
)
if self.child_map is not None:
for neuron in self.child_map.neurons.values():
_printable += neuron.__repr__(level+1)
return _printable
当我在其他文件中运行main函数时,它将调用此类并返回如下结果:
> position (0, 0) -- map dimensions (1, 1, 61) -- input dataset 219 element(s) -- level 0
> position (0, 0) -- map dimensions (2, 4, 61) -- input dataset 28 element(s) -- level 1
> position (0, 0) -- map dimensions (2, 4, 61) -- input dataset 0 element(s) -- level 2
> position (1, 0) -- map dimensions (2, 4, 61) -- input dataset 10 element(s) -- level 2
> position (0, 1) -- map dimensions (2, 4, 61) -- input dataset 4 element(s) -- level 2
> ...
现在,我想计算结果中有多少行,即我认为代码使用此__repr__
函数的次数。
我试图cnt_num_times = 0
在__repr__
函数中添加var,例如,并且cnt_num_times + = 1,但是最后它仍然打印很多1,那么如何纠正呢?
让cnt_num_times
你的类中的类变量,无论是在申报或内部将其初始化为0 __init__
。
class Neuron:
cnt_num_times = 0
def __init__():
......
def __repr__(self, level=0):
Neuron.cnt_num_times += 1
您无需在任何地方返回此变量,也可以像在类外部一样访问它Neuron.cnt_num_times
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句