循环__init__函数?

时间:2019-02-05 21:45:56

标签: python class init

我想知道从样式角度来看是否可以在类的__init__函数中包含for循环。

给出一个整数列表,我正在尝试生成another_list来存储当前值和下一个值的差异。但是,我想在类中的多个方法中使用another_list。因此,我正在考虑在__init__函数中创建another_list,而不是针对每种方法进行转换。这是最简单的方法吗?什么是传统风格?

2 个答案:

答案 0 :(得分:0)

__init__中必须写的内容没有限制。循环没有什么不同。如果您认为需要通过循环计算实例属性,那就去吧。

对象状态的所有内容(在逻辑上)都应保存为属性,如果它不是其他方法的动态参数,则没有理由重新计算它。这是python遵循的OOP背后的一种基本思想。

答案 1 :(得分:0)

使用循环不是坏习惯,但是我将在另一个函数中重构循环以保持整洁

__init__

您也可以在class A: def __init__(self, some_list): self.this_list = some_list self.another_list = self.this_list[::-1] def print_another_list(self): return self.another_list A([1,2,3]).print_another_list() 中创建一个循环

rrdtool create test.rrd \
         --start 1023654120 \
         --step 10 \
         DS:test:GAUGE:20:0:5 \
         RRA:AVERAGE:0.5:1:10 \

rrdtool update test.rrd 1023654121:1
rrdtool update test.rrd 1023654160:2
rrdtool update test.rrd 1023654180:3
rrdtool update test.rrd 1023654200:4
rrdtool update test.rrd 1023654220:5

明智的设计都正确