Как проверить аргументы с помощью декораторов в Python - PullRequest
0 голосов
/ 06 июня 2018

Мне нужно проверить два заданных ввода, прежде чем я вызову функцию добавления, если любой вход не является целым числом, я должен получить сообщение invalid input или error, если оба являются целыми числами, я должен получить сумму.

Я собираюсь в function not defined петли таким образом: (
не находя, как преодолеть это

import re

def my_dec(arg1,arg2):
     x = re.compile(r"[^0-9]")
     if x.search(arg1) and x.search(arg2)
        return add(a,b)
     else:
         print("invalid input")


@my_dec(arg1,arg2)
def add(a,b):
   return a + b


print(add(2,3))

1 Ответ

0 голосов
/ 08 июня 2018

после большого количества исследований и работы я нашел решение для проверки значений и нахождения сложения двух значений с помощью декораторов.

Пожалуйста, найдите ответ ниже

случайный импорт

def decorator (func): def func_wrapper (x, y): если тип (x) - это int, а тип (y) - это int: result = func (x, y) print ("{0} + {1} ={2} ". Format (x, y, result)) возвращаемый результат elif type (x) не является int или type (y) не int: print (" недопустимый ввод ") return func_wrapper

def add(a, b): вернуть a + b

вызвать функцию добавления перед декоратором

print (add (4,5))

add = decorator (add)

проверка на различные значения и входные данные

list_1 = [1,2,32,4,4,65,3,2, 'A', 'D', None, False, True,0,1, -2,2, -33,0.223,212, «строка»] для i в диапазоне (1100): x = random.choice (list_1) y = random.choice (list_1) add (x, y)

...