Python:修改列表中每个对象的一个​​属性

时间:2013-09-17 04:22:05

标签: python list oop iteration

我的问题是基本的,可能是重复但我没有找到答案。

我正在寻找将1添加到给定列表的所有对象的属性x中的最有效(pythonic)方法。

class Any(object):
   def __init__(self, x):
       self.x = x

l = [Any(1), Any(-3), Any(1), Any(4), Any(6), Any(7), Any(3)]

是否有比(例如使用列表理解)更好的解决方案:

for i in l:
    i.x += 1

2 个答案:

答案 0 :(得分:0)

您的代码没有任何问题,但如果您想在理解中使用它,请添加“增量”方法:

def inc(self, amount=1):
    self.x += amount
    return self

答案 1 :(得分:0)

你的方式完全是pythonic。