Как получить доступ к суператрибуту при определении атрибута уровня класса [дубликат] ⇐ Python
-
Anonymous
Как получить доступ к суператрибуту при определении атрибута уровня класса [дубликат]
В Python при определении класса можно использовать ранее определенные атрибуты в определении новых атрибутов без каких-либо дополнительных ссылок.
Родитель класса (объект): a_value = 'а' другое_значение = 'б' all_values = (a_value,other_value) Можно ли сделать то же самое в производном классе, но при этом получить доступ к некоторым из этих родительских атрибутов?
Я пробовал сделать что-то вроде этого:
класс Child(Parent): a_child_value = 'c' all_values = (a_value,other_value, a_child_value) Но похоже, что он не учитывает родительское наследование и выдает следующую ошибку:
NameError: имя «a_value» не определено Итак, есть ли способ указать, что a_value и another_value должны быть из родительского класса, а не из текущего контекста?
В моем случае, в частности, значения представляют собой не строки, а предварительно скомпилированные регулярные выражения, поэтому я хотел бы избежать необходимости создавать их внутри метода __init__ каждый раз при создании нового экземпляра.
В Python при определении класса можно использовать ранее определенные атрибуты в определении новых атрибутов без каких-либо дополнительных ссылок.
Родитель класса (объект): a_value = 'а' другое_значение = 'б' all_values = (a_value,other_value) Можно ли сделать то же самое в производном классе, но при этом получить доступ к некоторым из этих родительских атрибутов?
Я пробовал сделать что-то вроде этого:
класс Child(Parent): a_child_value = 'c' all_values = (a_value,other_value, a_child_value) Но похоже, что он не учитывает родительское наследование и выдает следующую ошибку:
NameError: имя «a_value» не определено Итак, есть ли способ указать, что a_value и another_value должны быть из родительского класса, а не из текущего контекста?
В моем случае, в частности, значения представляют собой не строки, а предварительно скомпилированные регулярные выражения, поэтому я хотел бы избежать необходимости создавать их внутри метода __init__ каждый раз при создании нового экземпляра.