How to get (sub)class name from a static method in Python?

Viewed 15072

If I define:

class Bar(object):

    @staticmethod
    def bar():
        # code
        pass

class Foo(Bar):
    # code
    pass

Is it possible for a function call Foo.bar() to determine the class name Foo?

3 Answers

As option, if you need determine class from staticmethod (not classmethod) I guess following code could be helpful:

class Bar(object):
    @staticmethod
    def bar():
        pass


class Foo(Bar):
    pass


foo_instance = Foo()
bar_static_function = foo_instance.bar
class_name = bar_static_function.__qualname__.split(".")[0]
print(class_name)  # Foo
Related