Bibm@th

Forum de mathématiques - Bibm@th.net

Bienvenue dans les forums du site BibM@th, des forums où on dit Bonjour (Bonsoir), Merci, S'il vous plaît...

Vous n'êtes pas identifié(e).

#1 26-08-2021 09:27:05

brics
Membre
Inscription : 14-12-2020
Messages : 4

fonction avec contrainte

Bonjour,
Je souhaite écrire decorator_check_max_int pour forcer la fonction "add" à ne pas renvoyer de valeurs supérieures à maxsize ( importer du module sys)
quelqu'un peut m'aider?

def decorator_check_max_int(func):  
    if add(a,b) > maxsize :
        return None


@decorator_check_max_int
def add(a, b):
    return a + b

Hors ligne

#2 22-09-2021 10:37:06

Matou
Invité

Re : fonction avec contrainte

Bonjour,

ton décorateur sert à remplacer une fonction par un autre objet (en général une autre fonction).
Il faut donc que tu définisses une nouvelle fonction dans ton def decorator_check_max_int(func) et que tu retournes cette nouvelle fonction :


maxsize = 1000

def decorator_check_max_int(func):
    def new_func(a, b):
        ret = func(a, b)
        if ret > maxsize :
            return None
        else :
            return ret
    return new_func

@decorator_check_max_int
def add(a, b):
    return a + b

a = int(input("a = "))
b = int(input("b = "))
print(add(a,b))
 

Ceci marche en python 2.7.13

Bonne journée

Matou

Réponse rapide

Veuillez composer votre message et l'envoyer
Nom (obligatoire)

E-mail (obligatoire)

Message (obligatoire)

Programme anti-spam : Afin de lutter contre le spam, nous vous demandons de bien vouloir répondre à la question suivante. Après inscription sur le site, vous n'aurez plus à répondre à ces questions.

Quel est le résultat de l'opération suivante (donner le résultat en chiffres)?
quarante plus un
Système anti-bot

Faites glisser le curseur de gauche à droite pour activer le bouton de confirmation.

Attention : Vous devez activer Javascript dans votre navigateur pour utiliser le système anti-bot.

Pied de page des forums