Перемещение по классам Python

Есть код:

class main:
    class sub:
        def function_from_sub():
            # Функция main_function
    def main_function():
        print("Something")

Задача - вызвать функцию, относящуюся к функции main, не передавая экземпляр класса в sub функцию и не создавая новый экземпляр экземпляр класса main. Это возможно?


Ответы (1 шт):

Автор решения: GinTR1k

Необходимо в данном случае использовать @staticmethod как написал Александр в комментарии.

class Main:
    class Sub:
        @staticmethod
        def function_from_sub():
            Main.main_function()

    @staticmethod
    def main_function():
        print("Something")

Вызвать метод:

>>> Main.Sub.function_from_sub()
Something
→ Ссылка