Skip to content Skip to sidebar Skip to footer

Getting Object Name And Function Name

It is actually 2 questions. 1) Is there a generic way to get the class name of an instance, so if I have a class class someClass(object): I would like a built in way that gives m

Solution 1:

use the __name__ attribute:

Class:

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

Function:

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

A quick hack for classes will be:

>>> 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

Solution 2:

the function part has already been answered at this SO post. The code would be:

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

For the class part, use: A.__name__ or A().__class__.__name (for an instance)


Post a Comment for "Getting Object Name And Function Name"