получение имени объекта и имени функции

На самом деле это 2 вопроса. 1) Существует ли общий способ получить имя класса экземпляра, поэтому, если у меня есть класс

class someClass(object): 

Я хотел бы встроенный способ, который дает мне строку 'someClass'

2) Аналогично функциям. Если бы у меня был

 def someFunction(): .... print builtinMethodToGetFunctionNameAsString return 

он будет печатать 'someFunction'

Причина, по которой я ищу это, заключается в том, что у меня есть немного джунглей классов и подклассов, и для отладки я бы хотел напечатать, где я, поэтому ко всем методам я просто хотел бы добавить что-то по строкам

 print 'Executing %s from %s' %(getFunctionName,getClassName) 

Поэтому я ищу общую команду, которая знает класс и функцию, где она есть, чтобы я мог копировать и вставлять строку во все методы без необходимости писать отдельную строку для каждого из них

2 Solutions collect form web for “получение имени объекта и имени функции”

используйте атрибут __name__ :

Класс:

 >>> class A:pass >>> A.__name__ 'A' >>> A().__class__.__name__ #using an instance of that class 'A' 

Функция:

 >>> def func(): ... print func.__name__ ... >>> func.__name__ 'func' >>> func() func 

Быстрый взлом для занятий будет:

 >>> import sys >>> class A(): ... def func(self): ... func_name = sys._getframe().f_code.co_name ... class_name = self.__class__.__name__ ... print 'Executing {} from {}'.format(func_name, class_name) ... >>> A().func() Executing func from A 

функциональная часть уже ответила на этом посту SO . Код будет выглядеть следующим образом:

 import sys print sys._getframe().f_code.co_name 

Для части класса используйте: A.__name__ или A().__class__.__name (для экземпляра)

  • В Python, как я могу проверить размер объекта StringIO?
  • Как избавиться от определенных предупреждающих сообщений в python, сохраняя все остальные предупреждения как обычно?
  • Объекты GAE put_multi (), использующие backend NDB
  • Django Model Mixins: наследовать от моделей. Моделя или из объекта?
  • Преобразовать строку в объект класса Python?
  • Как перечислить список в смежные группы ненулевых целых чисел в Python
  • Аргументы Python: Image.frombytes ()
  • Запуск Selenium WebDriver с использованием Python с расширениями (.crx-файлы)
  •  
    Interesting Posts for Van-Lav

    Попросите пользователя ввести что-то еще, если первый вход недействителен

    Как изменить переменные внутри классов? в python

    Учитывая контур, описывающий края формы S в OpenCV / Python, какие методы можно использовать для прослеживания кривой вдоль центра фигуры?

    Ошибка атрибута: объект «Рабочая книга» не имеет атрибута «active»

    Как найти все дочерние модули в Python?

    Как отслеживать текущего пользователя в флэше?

    Как выполнить докструменты PEP 257 при использовании модуля optparse от Python?

    Подсчет писем происходит Python

    Исходный файл (.py) не компилируется (.pyc не обновляется)

    VBA: ресурсы для программистов на Python

    Проблемы сходимости в иерархической модели пробит с NUTS и Metropolis

    Панды: снимите уровень с многоуровневого индекса столбца?

    Если строка не содержит ни одного из списка строк в python

    Импортировать SVM-модель в PMML в Java или Python?

    Как загрузить изображение с помощью python-торнадо из HTML-формы?

    Python - лучший язык программирования в мире.