When I run
class A(nn.Module):                  
    def __init__(self):              
        super().__init__()           
        self.c = nn.Conv2d(55, 50, 3)
        self.b = nn.Conv2d(50, 50, 3)
        self.a = nn.Conv2d(25, 25, 3)

 a = A()
 print(a)

it outputs submodules in the order of addition in the class A, i.e., c, b, a, instead of alphabetical order a, b, c I would expect. What python technique is used here to achieve this functionality? How does the base class (nn.Module) inspect live the derived classes’ (A) submodules addition? Thanks.