Forum de mathématiques - Bibm@th.net
Vous n'êtes pas identifié(e).
- Contributions : Récentes | Sans réponse
Pages : 1
#1 26-08-2021 10: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?
if add(a,b) > maxsize :
return None
@decorator_check_max_int
def add(a, b):
return a + b
Hors ligne
#2 22-09-2021 11: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
Pages : 1