如何计算python中一个类中__repr_函数调用次数



我通过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

当我在其他文件中运行主函数时,它调用这个类并返回如下结果:

> 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__函数的次数。

我试着在__repr__函数中添加一个var,比如cnt_num_times = 0,cnt_num_times+=1,但它最终还是打印了很多1,那么如何更正呢?

使cnt_num_times成为类内的类变量,在声明处或__init__内将其初始化为0。

class Neuron:
cnt_num_times = 0
def __init__():
......
def __repr__(self, level=0):
Neuron.cnt_num_times += 1

你不需要在任何地方返回这个变量,你也可以在类外访问它,比如Neuron.cnt_num_times

最新更新