Реализация вложенных классов вне родителя
При создании классов в приложении появилась необходимость разделить класс на несколько файлов из-за его размера. Вопрос состоит в том, можно ли реализовать вложенные классы в родитель?
Например в основном файле есть класс:
class Test:
class TestInner1:
pass
class TestInner2:
pass
class TestInner3:
pass
Я могу разделить это на файлы:
# --- Main file ---
from inner1 import TestInner1
from inner2 import TestInner2
from inner3 import TestInner3
class Test:
class TestInner1(TestInner1):
pass
class TestInner2(TestInner2):
pass
class TestInner3(TestInner3):
pass
# --- inner1 ---
class TestInner1:
# code
# --- inner2 ---
class TestInner2:
# code
# --- inner3 ---
class TestInner3:
# code
Но в таком случае в главном классе я реализую классы, дочерние тем, что лежат в другом файле. Возможно ли сделать это без такого костыля?
Заранее спасибо за ответы!
Ответы (1 шт):
Непонятно, зачем вообще делать в таком случае классы внутри другого класса. Это не несёт никакой практической пользы и так делают в основном, если есть маленький компактный класс и он всё равно понадобится только внутри большого класса, так что можно просто объявить его там и не загромождать глобальную область видимости.
Но если очень уж хочется чтобы они были именно внутри, то, кажется должно сработать что-то подобное:
import inner1
import inner2
import inner3
class Test:
TestInner1 = inner1.TestInner1
TestInner2 = inner2.TestInner2
TestInner3 = inner3.TestInner3