#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
. Вы правы, это не элегантно, но это ваш единственный выбор.