Если мы возьмем b = [1,2,3]
и попробуем сделать: b+=(4,)
Он вернет b = [1,2,3,4]
, но если мы попробуем сделать b = b + (4,)
, это не сработает.
b = [1,2,3]
b+=(4,) # Prints out b = [1,2,3,4]
b = b + (4,) # Gives an error saying you can't add tuples and lists
Я ожидал, что b+=(4,)
потерпит неудачу, так как вы не можете добавить список и кортеж, но это сработало. Поэтому я попытался b = b + (4,)
рассчитывать получить тот же результат, но он не сработал.
Как это объяснило здесь , если бы array
не реализует __iadd__
, метод, эти b+=(4,)
был бы просто неукомплектованным из b = b + (4,)
, но очевидно это не, таким образом array
действительно реализует __iadd__
метод. По-видимому, реализация __iadd__
метод является чем-то вроде этого:
def __iadd__(self, x):
self.extend(x)
Однако мы знаем, что вышеупомянутый код не является фактической реализацией __iadd__
метод, но мы можем принять и признать, что существует что-то как extend
метод, который принимает tupple
исходные данные.