Получить имя класса экземпляра?

Чтобы получить все атрибуты свойства в словаре, используйте это:

typeof(Book)
  .GetProperty("Name")
  .GetCustomAttributes(false)
  .ToDictionary(a => a.GetType().Name, a => a);

не забудьте изменить значение false на true, если вы хотите также включать в себя наследуемые атрибуты.

1224
задан martineau 7 September 2018 в 09:09
поделиться

3 ответа

Вы попробовали __name__ атрибут класса? т.е. type(x).__name__ даст Вам название класса, который я думаю, то, что Вы хотите.

>>> import itertools
>>> x = itertools.count(0)
>>> type(x).__name__
'count'

Этот метод работает с модернизированные классы только. Ваш код мог бы использовать некоторые классы старого стиля. Следующие работы для обоих:

x.__class__.__name__
1660
ответ дан Sam Watkins 7 September 2018 в 19:09
поделиться
  • 1
    Спасибо! I' ll проверяют эту проверку, взгляды, интересные и полезные! – Igal 15 March 2012 в 22:43

ввести ()?

>>> class A(object):
...    def whoami(self):
...       print type(self).__name__
...
>>>
>>> class B(A):
...    pass
...
>>>
>>>
>>> o = B()
>>> o.whoami()
'B'
>>>
86
ответ дан jfs 7 September 2018 в 19:09
поделиться

Вы хотите название класса как строка?

instance.__class__.__name__
344
ответ дан truppo 7 September 2018 в 19:09
поделиться
  • 1
    В исходном образце это был тип =" password". Вы выбираете текст типа использования. – Maxim 17 April 2014 в 07:08
Другие вопросы по тегам:

Похожие вопросы: