def deco_skip_first_call(func):
setattr(func, '_func_call_counter', 0)
def wrap(*args, **kwargs):
func._func_call_counter += 1
if func._func_call_counter > 1:
func(*args, **kwargs)
else:
return None
return wrap
@deco_skip_first_call
def foo(val):
print('foo', val)
@deco_skip_first_call
def wow(val):
print('wow', val)
for i in range(1, 5):
foo(i)
for i in range(1, 5):
wow(i)
ZGVmIGRlY29fc2tpcF9maXJzdF9jYWxsKGZ1bmMpOgogICAgc2V0YXR0cihmdW5jLCAnX2Z1bmNfY2FsbF9jb3VudGVyJywgMCkKICAgIGRlZiB3cmFwKCphcmdzLCAqKmt3YXJncyk6CiAgICAgICAgZnVuYy5fZnVuY19jYWxsX2NvdW50ZXIgKz0gMQogICAgICAgIGlmIGZ1bmMuX2Z1bmNfY2FsbF9jb3VudGVyID4gMToKICAgICAgICAgICAgZnVuYygqYXJncywgKiprd2FyZ3MpCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIE5vbmUKICAgIHJldHVybiB3cmFwCgpAZGVjb19za2lwX2ZpcnN0X2NhbGwKZGVmIGZvbyh2YWwpOgogICAgcHJpbnQoJ2ZvbycsIHZhbCkKCgpAZGVjb19za2lwX2ZpcnN0X2NhbGwKZGVmIHdvdyh2YWwpOgogICAgcHJpbnQoJ3dvdycsIHZhbCkKCmZvciBpIGluIHJhbmdlKDEsIDUpOgogICAgZm9vKGkpCgpmb3IgaSBpbiByYW5nZSgxLCA1KToKICAgIHdvdyhpKQo=