Как получить конкретное имя класса в виде строки? Я хочу избежать вызова множества функций isinstance(), поэтому я ищу способ получить конкретное имя класса для переменной экземпляра в виде строки. Любые идеи? Ответ 1 instance.__class__.__name__ Пример: >>> class A(): pass >>> a = A() >>> a.__class__.__name__ 'A' Ответ 2 <object>.__class__.__name__ Ответ 3 вы также можете создать dict с самими классами в качестве ключей, не обязательно с именами классов typefunc={ int:lambda x: x*2, str:lambda s:'(*(%s)*)'%s } def transform (param): print typefunc[type(param)](param) transform (1) >>> 2 transform ("hi") >>> (*(hi)*) здесь typefunc - это dict, который отображает функцию для каждого типа. transform получает эту функцию и применяет ее к параметру. конечно, было бы гораздо лучше использовать "настоящий" ООП
Ответ 1 instance.__class__.__name__ Пример: >>> class A(): pass >>> a = A() >>> a.__class__.__name__ 'A'
Ответ 3 вы также можете создать dict с самими классами в качестве ключей, не обязательно с именами классов typefunc={ int:lambda x: x*2, str:lambda s:'(*(%s)*)'%s } def transform (param): print typefunc[type(param)](param) transform (1) >>> 2 transform ("hi") >>> (*(hi)*) здесь typefunc - это dict, который отображает функцию для каждого типа. transform получает эту функцию и применяет ее к параметру. конечно, было бы гораздо лучше использовать "настоящий" ООП