How to get (sub)class name from a static method in Python?
Replace the staticmethod with a classmethod. This will be passed the class when it is called, so you can get the class name from that.
class Bar(object):
@classmethod
def bar(cls):
# code
print cls.__name__
class Foo(Bar):
# code
pass
>>> Bar.bar()
Bar
>>> Foo.bar()
Foo