Каковы преимущества/недостатки использования класса() или self.__ класса __() для создания нового объекта внутри класса? Один из способов в целом предпочтительнее другого?
Вот надуманный пример того, о чем я говорю.
class Foo(object):
def __init__(self, a):
self.a = a
def __add__(self, other):
return Foo(self.a + other.a)
def __str__(self):
return str(self.a)
def add1(self, b):
return self + Foo(b)
def add2(self, b):
return self + self.__class__(b)