Вызов внутренней функции из функции родительского класса

#python-3.x #function #class #inheritance

#python-3.x #функция #класс #наследование

Вопрос:

У меня есть следующая настройка

 class Parent:
   def a_outer():
      def a_inner():
         # Do something
         pass
      def b_inner():
         a_inner()
      b_inner()

class Child(Parent)
    def a_outer():
       def b_inner():
          # Change something
          # How can I call the a_inner() method form the parent class??
       b_inner()          
 

В функции b_inner() из наследующего дочернего класса I как мне получить доступ к классу a_inner() из родительского класса?

Я знаю, что это немного сбивает с толку, но именно поэтому у меня возник этот вопрос (и это также причина, по которой найти проблему в Google непросто; извините, если это дубликат).

Комментарии:

1. Вы не можете. Внутренние функции — это локальные переменные, которые забываются после a_outer завершения, если вы не сделаете что-то для их сохранения, но если вы делаете что-то для их сохранения, то вы могли бы также сделать их функциями Parent вместо того, чтобы определять их локально. Есть ли причина, по которой они должны быть определены внутри a_outer ?

2. @ThisIsAQuestion к сожалению, родительский класс в моем примере взят из пакета, поэтому я «не могу» его структуру. В качестве обходного пути я могу просто скопировать и вставить функцию a_inner(), но это не кажется элегантным.

3. Если у вас вообще нет возможности изменить Parent , то нет способа решить вашу проблему без копирования и вставки a_inner . Вы правы, это не элегантно, но это ваш единственный выбор.