Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- def get_callable_name(func):
- if hasattr(func, '__qualname__'):
- return func.__qualname__
- # get func's class
- f_self = getattr(func, '__self__', None) or getattr(func, 'im_self', None)
- if f_self and hasattr(func, '__name__'):
- # bound method class
- f_class = f_self if isinstance(f_self, type) else f_self.__calss__
- else:
- # class unbound method
- f_class = getattr(func, 'im_class', None)
- # class methods, bound and unbound methods
- if f_class and hasattr(func, '__name__'):
- return '%s.%s' % (f_class.__name__, func.__name__)
- # class or class instance
- if hasattr(func, '__call__'):
- # class
- if hasattr(func, '__name__'):
- return func.__name_
- # class instance
- return func.__class__.__name__
- raise ValueError('Unable to determine a name for ')
Add Comment
Please, Sign In to add comment