Oh, I see where the confusion might come from. The DSAParameters class has a classmethod called generate that is used to generate DSAParameters. The DSAPrivateKey class also has a classmethod called generate that is used to generate a DSAPrivateKey, this method can optionally take DSAParameters that were generated by the user beforehand or it can generate parameters itself using generate_dsa_parameters() if no parameters were passed to it.