TypeError; il Faut utiliser le mot clé de l'argument ou la clé de fonction en python 3.x

Je suis nouveau sur le python, en essayant de port d'un script en 2.x à 3.x je rencontre l'erreur TypeError; il Faut utiliser le mot clé de l'argument ou la clé de fonction en python 3.x. Ci-dessous le morceau de code: s'il vous Plaît aider

def resort_working_array( self, chosen_values_arr, num ):
    for item in self.__working_arr[num]:
        data_node = self.__pairs.get_node_info( item )

        new_combs = []
        for i in range(0, self.__n):
            # numbers of new combinations to be created if this item is appended to array
            new_combs.append( set([pairs_storage.key(z) for z in xuniqueCombinations( chosen_values_arr+[item], i+1)]) - self.__pairs.get_combs()[i] )
        # weighting the node
        item.weights =  [ -len(new_combs[-1]) ]    # node that creates most of new pairs is the best
        item.weights += [ len(data_node.out) ] # less used outbound connections most likely to produce more new pairs while search continues
        item.weights += [ len(x) for x in reversed(new_combs[:-1])]
        item.weights += [ -data_node.counter ]  # less used node is better
        item.weights += [ -len(data_node.in_) ] # otherwise we will prefer node with most of free inbound connections; somehow it works out better ;)

    self.__working_arr[num].sort( key = lambda a,b: cmp(a.weights, b.weights) )
Je ne peux pas exécuter ce qu'il n'est pas un MCVE, de sorte qu'il est difficile de diagnostiquer complètement le problème. Mais un rapide coup d'œil, le key argument du lambda n'est censé prendre un argument. Avez-vous essayé sort(key = lambda a: a.weights)?
oh!! Parfait cela fonctionne. Merci Kevin, u m'a sauvé beaucoup de temps.
C'est une nouvelle addition à Python3, également une bonne lecture pertinente de la PEP: python.org/dev/peps/pep-3102

OriginalL'auteur tyranno | 2015-04-29