IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

TypeError: <lambda>() missing 1 required positional argument: 'b'


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre régulier
    Femme Profil pro
    Étudiant
    Inscrit en
    Octobre 2020
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2020
    Messages : 7
    Par défaut TypeError: <lambda>() missing 1 required positional argument: 'b'
    Bonjour,
    J'installe une bibliothèque mais j'ai un problème dans le code source qui est:
    TypeError: <lambda>() missing 1 required positional argument: 'b'
    Est-ce que quelqu'un peut m'aider
    la partie de code dans laquelle se trouve le problème est la suivante:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    @property
    def python(self):
     
    classes = self.hierarchy.keys() // self.hierarchy = defaultdict(list)
    #classes.sort(lambda a, b: self._cost(a) - self._cost(b)) // instruction originale dans le code mais j'ai la remplacé par les deux ligne suivantes
    classes = list(self.hierarchy)
    classes.sort(key=lambda a, b: self._cost(a) - self._cost(b))
     
    code = ["from snakes.lang import ast", "from ast import *", ""]
     
    for cls in classes:
    code.extend(self.code[cls])
    code.append("")
    j'ai essayé de remplacer ce code par le code suivant mais j'ai le même problème:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    @property
        def python(self):
    
            classes = self.hierarchy.keys()
            #classes.sort(lambda a, b: self._cost(a) - self._cost(b))
            classes = map(lambda a, b: self._cost(a) - self._cost(b), classes)
            classes = list(classes)
            classes.sort()
            #classes.sort(lambda a, b: self._cost(a) - self._cost(b))
    
            code = ["from snakes.lang import ast",
                    "from ast import *",
                    ""]
    
            for cls in classes:
                code.extend(self.code[cls])
                code.append("")
    Merci d'avance.

  2. #2
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 741
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 741
    Par défaut
    Salut,

    Pour avoir de l'aide, commencez par raconter quelle bibliothèque vous utilisez et postez (proprement) le code qui permet de reproduire l'erreur.

    Ceci dit si vous utilisez une bibliothèque telle que snakes, et que çà plante, la première question a vous poser est de savoir si vous l'utilisez correctement.
    Et avant de se lancer à corriger quoi que ce soit, il faut comprendre comment elle fonctionne.
    Ce qui demande un savoir faire certain en programmation (que vous n'avez probablement pas puisque vous demandez de l'aide).

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  3. #3
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 741
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 741
    Par défaut
    Salut,

    Citation Envoyé par fkglaa Voir le message
    je suit entrain d'installer neco-net-compiler et j'utilise snakes voici la trace complet de l'erreur
    Je dirais que si çà ne s'installe pas, c'est qu'à priori, vous ne respectez pas certains des pré-requis (voir le document d'installation)....

    Après s'il y "bug", vous avez des développeurs/mainteneurs à contacter après avoir épluché les Issues reportées et farfouillé sur Internet pour voir s'il y a des qui ont eu un problème similaire.

    Si les développeurs sont partis et que le truc est "confidentiel", seules les personnes intéressées à faire tomber ce truc en marche qui pourront s'y coller (pour autant qu'ils aient le temps et le savoir faire pour).

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  4. #4
    Membre régulier
    Femme Profil pro
    Étudiant
    Inscrit en
    Octobre 2020
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2020
    Messages : 7
    Par défaut
    Citation Envoyé par wiztricks Voir le message
    Salut,



    Je dirais que si çà ne s'installe pas, c'est qu'à priori, vous ne respectez pas certains des pré-requis (voir le document d'installation)....


    - W
    Merci, je vais refaire et réessayer

  5. #5
    Expert confirmé
    Avatar de tyrtamos
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2007
    Messages
    4 486
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2007
    Messages : 4 486
    Billets dans le blog
    6
    Par défaut
    Bonjour,

    Il est possible ça concerne une erreur dans l'appel à la méthode _cost et non une erreur de syntaxe de lambda: donne la 1ère ligne de la méthode "_cost" avec tous ses arguments.

  6. #6
    Membre régulier
    Femme Profil pro
    Étudiant
    Inscrit en
    Octobre 2020
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2020
    Messages : 7
    Par défaut
    Citation Envoyé par tyrtamos Voir le message
    Bonjour,

    Il est possible ça concerne une erreur dans l'appel à la méthode _cost et non une erreur de syntaxe de lambda: donne la 1ère ligne de la méthode "_cost" avec tous ses arguments.
    Salut, voici la méthode cost:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    @memoize
        def _cost(self, name):
            # print "call cost {}".format(name)
            if name == '_AST':
                return 0
            parents = self.hierarchy[name]
            return reduce(lambda acc, x: acc + self._cost(x), parents, 1)
    je suit entrain d'installer neco-net-compiler et j'utilise snakes voici la trace complet de l'erreur:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    G:\Plugins\neco-net-compiler-master>python setup.py install enable-neco-spot --prefix=$G:\Python\Lib\site-packages
    generating ASDL
    Traceback (most recent call last):
    File "setup.py", line 63, in <module>
    gen_asdl()
    File "setup.py", line 26, in gen_asdl
    compile_asdl('neco/asdl/properties.asdl', 'neco/asdl/properties.py')
    File "G:\Python\lib\site-packages\snakes\lang\asdl.py", line 262, in compile_asdl
    outfile.write(CodeGen(node).python)
    File "G:\Python\lib\site-packages\snakes\lang\asdl.py", line 227, in python
    classes.sort(key = lambda a, b: self._cost(a) - self._cost(b))
    TypeError: <lambda>() missing 1 required positional argument: 'b'

  7. #7
    Expert confirmé
    Avatar de tyrtamos
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2007
    Messages
    4 486
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2007
    Messages : 4 486
    Billets dans le blog
    6
    Par défaut
    J'ai trouvé: utilisé avec sort, le lambda qui va avec key ne peut avoir qu'un seul argument! C'est facile à comprendre: sort va comparer chaque élément de la liste à trier pour savoir dans quel ordre il doit les placer.

    Il ne te reste plus qu'à donner le principe du contenu de la liste à trier et ce que tu veux trier. Il y a pas mal de possibilités.

  8. #8
    Membre régulier
    Femme Profil pro
    Étudiant
    Inscrit en
    Octobre 2020
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2020
    Messages : 7
    Par défaut
    Citation Envoyé par tyrtamos Voir le message
    J'ai trouvé: utilisé avec sort, le lambda qui va avec key ne peut avoir qu'un seul argument! C'est facile à comprendre: sort va comparer chaque élément de la liste à trier pour savoir dans quel ordre il doit les placer.

    Il ne te reste plus qu'à donner le principe du contenu de la liste à trier et ce que tu veux trier. Il y a pas mal de possibilités.
    j'ai pas compris le reason d'utiliser deux entrés pour lambda, mais dans la méthode originale (dans bibliothèque) sort est utilisé avec dict_key (pas avec list) et sans le mot clé key --> pour ça j'ai converti le type de dict_key à list.
    donc je n'ai pas pu déterminer le principe du contenu de la liste à trier.

  9. #9
    Expert confirmé
    Avatar de tyrtamos
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2007
    Messages
    4 486
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2007
    Messages : 4 486
    Billets dans le blog
    6
    Par défaut
    Si un dictionnaire D a été converti en liste avec la méthode items(), il se présentera comme:

    L = [[cle1, val1], [cle2, val2], [cle3, val3], [cle4, val4], ...]

    Si on veut trier la liste L selon les clés, ça se fera comme suit:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    L.sort(key=lambda v: v[0])
    Ce qui veut dire que dans les comparaisons entre éléments pour le tri, l'élément v=[cle, val] sera remplacé par v[0], c'est à dire cle.

    Si on veut trier la liste L selon les valeurs, ça se fera comme suit:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    L.sort(key=lambda v: v[1])
    Ce qui veut dire que dans les comparaisons entre éléments pour le tri, l'élément v=[cle, val] sera remplacé par v[1], c'est à dire val.

    A noter que si on veut que le tri soit inverse, il faut ajouter un argument supplémentaire à sort: reverse=True

    Ok?

Discussions similaires

  1. TypeError: Entry_1() missing 1 required positional argument
    Par abcbbm dans le forum Général Python
    Réponses: 8
    Dernier message: 13/05/2020, 17h32
  2. TypeError: f() missing 1 required positional argument: 'd'
    Par Gailletan2 dans le forum Général Python
    Réponses: 3
    Dernier message: 08/05/2019, 13h34
  3. [Python 3.X] Probleme de TypeError: <lambda>() missing 1 required positional argument: 'b'
    Par Tonivege dans le forum Général Python
    Réponses: 7
    Dernier message: 20/02/2018, 13h58
  4. Réponses: 2
    Dernier message: 23/08/2016, 11h22

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo