Сгруппировать функции

Есть такой вот код:

class Test:
               
      def __init__(self, a):
          self.a = a;
          
      def abc(self):
          print(self.a);
      
      def cde(self):
          print(self.a);

Могу ли я как-то сгруппировать функции? Чтобы запускать их не так (например:)

a = Test('Hello');
a.abc();

А вот таким образом:

a = Test('Hello');
a.alphabet.abc();
a.alphabet.cde();

?


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

Автор решения: Кирилл Малышев

Можно с внутренним классом:

class Test:
               
      def __init__(self, a):
          self.a = a
          self.alphabet = Test.Alphabet(self)
          
      class Alphabet:
            def __init__(self, test):
              self.test = test
              
            def abc(self):
              print(self.test.a)
      
            def cde(self):
              print(self.test.a)
              
              
              
a = Test('Hello')
a.alphabet.abc()
a.alphabet.cde()
→ Ссылка
Автор решения: GrAnd

Если добавите в класс атрибут alphabet, то сможете.

class Test:
               
      def __init__(self, a):
          self.a = a;
          self.alphabet = self   # <<<<<<<<<<<<
          
      def abc(self):
          print(self.a);
      
      def cde(self):
          print(self.a);
          
a = Test('Hello');
a.alphabet.abc();
a.alphabet.cde();
→ Ссылка