最近我遇到了下面的代碼在pythonpython內部存在什麼?
for var in self:
self.some_list.append(var)
我知之甚少,但自己上面的代碼真的讓我覺得這樣可以部分解釋一個我是什麼一段代碼是什麼意思?
最近我遇到了下面的代碼在pythonpython內部存在什麼?
for var in self:
self.some_list.append(var)
我知之甚少,但自己上面的代碼真的讓我覺得這樣可以部分解釋一個我是什麼一段代碼是什麼意思?
當您用for ... in ...
語法迭代某個對象時,您確實在調用__iter__
方法。例如,
class Iterable(object):
def __init__(self, *args):
self.items = args
def dump(self):
for val in self:
print 'I have %s!' % str(val)
def __iter__(self):
for val in self.items:
yield val
i = Iterable(1, 2, 3, 'foo', 'bar')
i.dump()
在dump
方法for val in self
迭代的self.values
列表作爲由__iter__
實現。如果你放棄__iter__
方法,Python將不知道該怎麼做,你將得到一個TypeError('Iterable'對象不可迭代)。
標識符self
在python中沒有特別的意義,它可以容納你放入它的任何東西(通過賦值或函數的參數)。
被調用的唯一的實例方法會將該方法被調用的對象作爲第一個參數,它通常是(通過約定)調用self
。
你能提供更多的上下文嗎?它是什麼讓你思考? – ASGM