I have a function that takes another function as a parameter. If the function is a member of a class, I need to find the name of that class. E.g.
def analyse
From python 3.3, .im_class is gone. You can use .__qualname__ instead. Here is the corresponding PEP: https://www.python.org/dev/peps/pep-3155/
class C:
def f(): pass
class D:
def g(): pass
print(C.__qualname__) # 'C'
print(C.f.__qualname__) # 'C.f'
print(C.D.__qualname__) #'C.D'
print(C.D.g.__qualname__) #'C.D.g'
With nested functions:
def f():
def g():
pass
return g
f.__qualname__ # 'f'
f().__qualname__ # 'f..g'