fork download
  1. def deco_skip_first_call(func):
  2. setattr(func, '_func_call_counter', 0)
  3. def wrap(*args, **kwargs):
  4. func._func_call_counter += 1
  5. if func._func_call_counter > 1:
  6. func(*args, **kwargs)
  7. else:
  8. return None
  9. return wrap
  10.  
  11. @deco_skip_first_call
  12. def foo(val):
  13. print('foo', val)
  14.  
  15.  
  16. @deco_skip_first_call
  17. def wow(val):
  18. print('wow', val)
  19.  
  20. for i in range(1, 5):
  21. foo(i)
  22.  
  23. for i in range(1, 5):
  24. wow(i)
  25.  
Success #stdin #stdout 0.02s 9088KB
stdin
Standard input is empty
stdout
foo 2
foo 3
foo 4
wow 2
wow 3
wow 4