В чем разница между type(obj)
и obj.__class__
? Есть ли возможность type(obj) is not obj.__class__
?
Я хочу написать функцию, которая работает в основном на поставляемых объектах, используя значение по умолчанию 1 в том же типе, что и другой параметр. Какое изменение, № 1 или № 2 ниже, будет делать правильно?
def f(a, b=None):
if b is None:
b = type(a)(1) # #1
b = a.__class__(1) # #2