The following is working for me:
class Discrim(nn.Module):
    channels, maxpool_mask = [13, 64, 192, 384, 256, 256], [1, 1, 0, 0, 1]
    ker_size, strd, pad = [2, 5, 3, 3, 3], [2, 1, 1, 1, 1], [0, 2, 1, 1, 1]


    def __init__(self, classes=13, conv_layers=5):
        super(Discrim, self).__init__()
        self.classes = classes
        conv_features = []
        for index in range(conv_layers):
            conv_features.append(nn.Conv2d(Discrim.channels[index], Discrim.channels[index + 1],
                                           kernel_size=Discrim.ker_size[index],
                                           stride=Discrim.strd[index],
                                           padding=Discrim.pad[index],
                                           bias=False))
            conv_features.append(nn.BatchNorm2d(Discrim.channels[index + 1]))
            conv_features.append(nn.ReLU(inplace=True))
            if Discrim.maxpool_mask[index] == 1:
                conv_features.append(nn.MaxPool2d(3, stride=2, padding=1))
            else:
                conv_features.append(nn.ReLU(inplace=True))
        self.features = nn.Sequential(*conv_features)
    
    
    def forward(self, x):
        out = self.features(x)
        return out


net = Discrim()

I only changed the line self.features = nn.Sequential(*conv_features). The Problem here is, that you index with i but i is not defined. Since you iterate over all layers, I just unpacked the list, which should basically do the same.