Помогите пожалуйста правильно написать функцию Python

помогите пожалуйста правильно написать функцию, мне нужно получить этот результат только в одной функции: Правильный результат

def log_request(req: 'flask_request' , res: 'str') -> None:
    '''Функция принимает два аргумента <req> и <res> с функции <do_search>'''
    #Аргумент <req> принимает текуший обьек запроса
    #Аргумент <res> принимает результат вызова <number>
    with open('vsearch.log', 'a') as log: 
        print(req.form['num_jek'], req.form['my_num1'] , res ,file=log , sep='|')

def log_request2(req: 'flask_request' , res: 'str') -> None:
    with open('vsearch.log', 'a') as log:
        print(req.form['num_jek'], req.form['my_num2'] , res ,file=log , sep='|')

def log_request3(req: 'flask_request' , res: 'str') -> None:
    with open('vsearch.log', 'a') as log:
        print(req.form['num_jek'], req.form['my_num3'] ,  res, file=log , sep='|')

ожидаю от кода , нужно чтобы с первой операции do_search записался первый print , далее функция log_request пропустила нижние 2 принта до выполнения следушей операции do_search , когда выполниться вторая операция должен записаться только второй print а первый и третий должны пропуститься , когда сработает 3 операция do_search то должный 1 и 2 print пропуститься а третий записаться.

def log_request(req: 'flask_request' , res: 'str') -> None:
    '''Функция принимает два аргумента <req> и <res> с функции <do_search>'''
    #Аргумент <req> принимает текуший обьек запроса
    #Аргумент <res> принимает результат вызова <number>
    with open('vsearch.log', 'a') as log:     
        print(req.form['num_jek'], req.form['my_num1'] , res ,file=log , sep='|')
        print(req.form['num_jek'], req.form['my_num2'] , res ,file=log , sep='|')       
        print(req.form['num_jek'], req.form['my_num3'] ,  res, file=log , sep='|')

неправильный результат

извините за глупый вопрос, я только учусь, поинтересоваться не у кого((


Ответы (1 шт):

Автор решения: CrazyElf

Если я вас правильно понял, то как-то так:

n = 0

def log_request(req: 'flask_request', res: 'str') -> None:
    '''Функция принимает два аргумента <req> и <res> с функции <do_search>'''
    #Аргумент <req> принимает текущий объект запроса
    #Аргумент <res> принимает результат вызова <number>

    global n
    n += 1

    with open('vsearch.log', 'a') as log:     
        print(req.form['num_jek'], req.form['my_num'+str(n)] , res ,file=log , sep='|')

Но помните, что использовать global - не есть хорошо. Просто не зная остальной ваш код довольно сложно что-то советовать. :)

→ Ссылка