Advertisement
Guest User

Untitled

a guest
Feb 23rd, 2017
67
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.50 KB | None | 0 0
  1. import functools
  2. import math
  3.  
  4. '''
  5. Создание пре-условия
  6. '''
  7.  
  8. def pre(cond, mesg):
  9. def wrapper(func):
  10. @functools.wraps(func)
  11. def inner(*args, **kwargs):
  12. assert cond(*args, **kwargs), mesg # если cond==Faulse, то выведется сообщение msg
  13. return func(*args, **kwargs)
  14. return inner
  15. return wrapper
  16.  
  17.  
  18. @pre(lambda x: x>=0, "negative argument")
  19. def foo(x):
  20. return math.log(x)
  21.  
  22.  
  23. print(foo(4)) # 1.3862943611198906
  24. print(foo(-4)) # AssertionError: negative argument
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement