Python custom list class initialization
Sure, you can play with the default argument value:

class AB:
    def __init__(self, data=None):
        self.data = data if data is not None else []

    def __add__(self, other):
        return AB(self.data + [other.arg])


Other notes:


list is a bad variable name as it is shadowing the built-in list keyword
remove redundant parentheses after the class name


Demo:

In [1]: ab = AB()

In [2]: ab += A(1)

In [3]: ab += A(2)

In [4]: print(ab.data)
[&lt;__main__.A instance at 0x10afb14d0&gt;, &lt;__main__.A instance at 0x10afa0998&gt;]