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 :

Petit probleme de fstring


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de dedalios
    Homme Profil pro
    concepteur d'application
    Inscrit en
    Février 2008
    Messages
    495
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : concepteur d'application
    Secteur : Santé

    Informations forums :
    Inscription : Février 2008
    Messages : 495
    Par défaut Petit probleme de fstring
    Bonjour

    il doit s’agir d'une erreur dés plus trivial mais je ne la vois pas sur ce code "Classe.py". Donc merci pour votre aide

    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    # coding: utf-8  
    '''
    Created on 20/02/2019
     
    @author: user
    '''
     
    from dataclasses import dataclass
     
     
     
    @dataclass
    class Classe(object):
        Nom : str
        Identifiant_Classe : int
     
        '''
        classdocs
        '''
     
        def __init__(self):
            '''
            Constructor
            '''
        def __str__(self):
            return f"""Nom : {self.Nom}
    Identifiant_Classe : {self.Identifiant_Classe}"""
     
     
     
    @dataclass
    class Experience(object):
        Id_classe : int  
        Nom_de_classe : str  = None
        Niveau : int
        Minimun : int
        Maximun : int 
        '''
        classdocs
        '''
     
        def __init__(self):
            '''
            Constructor
            '''
     
        def __str__(self):
     
            val =  'Id_classe : '   + str(self.Id_classe )+ '\n'
            + 'Nom_de_classe : ' + self.Nom_de_classe  + '\n'
            + 'Niveau : ' + str(self.Niveau)  + '\n'
            + 'Minimun :  ' + str(self.Minimun)  + '\n'
            + 'Maximun : ' +  str(self.Maximun)   
            return val

    Selon le debug
    le code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
        def __str__(self):
            return f"""Nom : {self.Nom}
    Identifiant_Classe : {self.Identifiant_Classe}"""

    raise TypeError(f'non-default argument {f.name!r} '
    TypeError: non-default argument 'Niveau' follows default argument
    ERROR: Module: Classe could not be imported (file: Classe.py)

    Par ailleurs est-il plus pertinent d'utiliser les FSTRING ou d’utiliser la formulation tel que


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
        def __str__(self):
     
            val =  'Id_classe : '   + str(self.Id_classe )+ '\n'
            + 'Nom_de_classe : ' + self.Nom_de_classe  + '\n'
            + 'Niveau : ' + str(self.Niveau)  + '\n'
            + 'Minimun :  ' + str(self.Minimun)  + '\n'
            + 'Maximun : ' +  str(self.Maximun)   
            return val

  2. #2
    Membre expérimenté Avatar de zancrows
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2016
    Messages
    159
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2016
    Messages : 159
    Par défaut
    Bonjour,

    l'erreur dans votre code vient d'ici:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    @dataclass
    class Experience(object):
        Id_classe : int  
        Niveau : int
        Nom_de_classe : str = None
        Minimun : int
        Maximun : int
    il faut mettre les attributs avec une valeur par défaut en dernier, comme ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    @dataclass
    class Experience(object):
        Id_classe : int  
        Niveau : int
        Minimun : int
        Maximun : int 
        Nom_de_classe : str = None
    En faisant ça je n'ai plus d'erreur.
    Je n'ai pas trouvé la raison exact en cherchant, mais je suppose que c'est comme quand on fait un classe 'normale', ou il faut mettre les arguments avec une valeur par défaut après les arguments sans valeur par défaut.

    ceci plante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    class Classe:
        def __init__(self, id_classe:int, Niveau:int=None, Minimum:int):
            pass
    alors que ceci non:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    class Classe:
        def __init__(self, id_classe:int, Minimum:int, Niveau:int=None):
            pass

  3. #3
    Membre éclairé Avatar de dedalios
    Homme Profil pro
    concepteur d'application
    Inscrit en
    Février 2008
    Messages
    495
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : concepteur d'application
    Secteur : Santé

    Informations forums :
    Inscription : Février 2008
    Messages : 495
    Par défaut
    Voici aussi une correction

    J'ai supprimer la valeur par défaut

    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    # coding: utf-8  
    '''
    Created on 20/02/2019
     
    @author: user
    '''
     
    from dataclasses import dataclass
     
    @dataclass
    class Classe(object):
        Nom : str
        Identifiant_Classe : int
     
        '''
        classdocs
        '''
     
        def __init__(self):
            '''
            Constructor
            '''
            print("self.Nom")
        def __str__(self):
            return f"""Nom : {self.Nom}
    Identifiant_Classe : {self.Identifiant_Classe}"""
     
     
     
     
    @dataclass
    class Experience(object):
        Id_classe : int
        Nom_de_classe : str
        Niveau : int
        Minimun : int
        Maximun : int
        '''
        classdocs
        '''
     
        def __init__(self):
            '''
            Constructor
            '''
     
        def __str__(self):
            return  f"""Id_classe : {self.Id_classe}
    Nom_de_classe : {self.Nom_de_classe}
    Niveau : {self.Niveau}
    Minimun : {self.Minimun}
    Maximun : {self.Maximun} """
     
    if __name__ == '__main__':
        #La_classe = Classe()
        exep =Experience()
        exep.Niveau = 15
        exep.Maximun = 30
        exep.Minimun = 2
        exep.Id_classe=0
        exep.Nom_de_classe ="Opal"
     
        print(exep)

Discussions similaires

  1. Petit problème de fork
    Par osmose22 dans le forum Linux
    Réponses: 7
    Dernier message: 18/03/2007, 21h10
  2. [TP]petit probleme avec solution
    Par pompompolom dans le forum Turbo Pascal
    Réponses: 1
    Dernier message: 02/12/2004, 19h48
  3. petit probleme avec l'éditeur de builder
    Par qZheneton dans le forum C++Builder
    Réponses: 2
    Dernier message: 28/10/2004, 16h19
  4. petit probleme de requete
    Par nico33307 dans le forum Décisions SGBD
    Réponses: 2
    Dernier message: 25/08/2004, 11h36
  5. petit probleme dans une requte POSTGRE SQL
    Par ghis le fou dans le forum Requêtes
    Réponses: 5
    Dernier message: 08/09/2003, 13h51

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