Arash Arfaee wrote:
Hi All,

Is there anyway to add new in-place operator to Python?

You can't create new syntax, like %=

Or is there any way to redefine internal in-place operators?

What you can do is give your objects the ability to use these operators.

See http://docs.python.org/ref/numeric-types.html for __iadd_ (+=) and friends.

You could implement something like a string buffer this way:

class Buffer:
    def __init__(self):
        self.buf = []

    def __iadd__(self, item):
        self.buf.append(item)
        return self

    def __str__(self):
        return "".join(self.buf)

if __name__ == "__main__":
    buf = Buffer()
    buf += "str1"
    buf += "str2"

    print str(buf)

-- Gerhard

--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to