我想知道从样式角度来看是否可以在类的__init__
函数中包含for循环。
给出一个整数列表,我正在尝试生成another_list
来存储当前值和下一个值的差异。但是,我想在类中的多个方法中使用another_list
。因此,我正在考虑在__init__
函数中创建another_list,而不是针对每种方法进行转换。这是最简单的方法吗?什么是传统风格?
答案 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
明智的设计都正确