Что такое простая функция утилиты, чтобы различать класс или объект python старого стиля и нового стиля?Что такое простая функция утилиты, чтобы различать класс или объект python старого стиля и нового стиля?
ли следующие правильно/полн:
isNewStyle1 = lambda o: isinstance(hasattr(o, '__class__') and o.__class__ or o, type)
isNewStyle2 = lambda o: hasattr(o, '__class__') and type(o) == o.__class__ or False
Если нет, то вы можете предоставить решение. Если да, есть ли лучший способ сделать чек?
Используя вышеизложенное, у меня не было никаких проблем, но у меня нет 100% уверенности в том, что он будет работать для всех объектов, поставляемых в качестве параметров.
'isNewStyle = lambda x: hasattr (x," __weakref __ ")' Просто выберите функцию, которую имеют классы нового стиля, но классы старого стиля этого не делают. –