Я использую следующий код: lambda
для вызова функции один раз в цикле, он работает, но теперь я пытаюсь вызвать функцию в течение определенного времени, например 3 раза в цикле, я искал он и нашел некоторые решения, но они вызывают функцию для определенных времен, если нет цикла, когда я пытаюсь в цикле, ничего не меняется. Есть ли эффективный способ сделать это?Вызов функции дважды или более в цикле
Эта работа работает в цикле и печатается только один раз. Я хочу что-то подобное сделать 3 раза.
def once():
print "Do function once"
once.func_code = (lambda:None).func_code
once()
Этот код, приведенный ниже, не меняет ничего, и он продолжает печатать навсегда, если он находится в цикле, если он не работает.
def repeat_fun(times, f):
for i in range(times): f()
def do():
print 'Do function for 3 times'
repeat_fun(3, do)
Также добавление счетчика вне цикла помогает, но я думаю, что для этого должно быть лучшее решение.
Может быть, я не правильно понимайте свою проблему, но второй фрагмент кода работает правильно для меня. Я даже поставил 'repeat_fun (3, do)' в цикле и запустил его, и он запустил число раз, которое я указал, а затем остановился. Вы пытаетесь получить это поведение с помощью lambda? – coralvanda
Я попробовал еще раз, он не работает в цикле. 'while True: repeat_fun (3, do)', он сохраняет печать навсегда. 'lambda' решение будет лучше, но любой эффективный способ сделать это тоже. – hzleonardo
'пока True печатает навсегда', поэтому ваша проблема заключается в том, что вы создаете бесконечный цикл, который работает вечно? – polku