Похоже на проблему XY.
Можно так:
def payload(counter):
if input(counter):
raise ZeroDivisionError
counter += 1
return counter
def repeater():
cnt = 0
while True:
try:
cnt = payload(cnt)
except ZeroDivisionError:
print('\ncode restarted')
repeater()
repeater()
Можно еще так:
def repeate(func):
cnt = 0
while True:
try:
cnt = func(cnt)
except ZeroDivisionError:
print('\ncode restarted')
func()
@repeate
def payload(counter=0):
if input(counter):
raise ZeroDivisionError
counter += 1
return counter
payload()