Hacker News new | ask | show | jobs
by rix0r 4440 days ago
It's not ENTIRELY obvious. For example, tup[0].extend([1]) would work fine, and the behaviour of __iadd__() seems like it should be the same as extend(). In fact, the reference[1] has the following thing to say:

> For instance, to execute the statement x += y, where x is an instance of a class that has an __iadd__() method, x.__iadd__(y) is called.

However, this is patently not true, apparently:

    tup = ([],)
    tup[0].__iadd__([1])  # Works
    print tup

    tup = ([],)
    tup[0] += [1]  # TypeError
    print tup

[1] https://docs.python.org/2/reference/datamodel.html#emulating...