In [1]:
def moja(x):
return x + 1
In [2]:
moja(12)
Out[2]:
In [3]:
def f():
def g():
print("Hi, it's me 'g'")
print("Thanks for calling me")
print("This is the function 'f'")
print("I am calling 'g' now:")
g()
f()
In [3]:
def opakowanie(funkcja):
def opakowana(x):
print("Opakowałem funkcję o nazwie:",funkcja.__name__)
return funkcja(x)
return opakowana
In [4]:
g = opakowanie(moja)
In [6]:
g(881)
Out[6]:
In [14]:
@opakowanie
def ble(x):
return x+2
In [15]:
ble(33)
Out[15]:
In [19]:
def chk(f):
def checked(x):
if x>0:
return f(x)
else:
return 0.0
return checked
In [20]:
from math import log
@chk
def new_log(x):
return log(x)
In [21]:
log(-1)
In [24]:
new_log(2),log(2)
Out[24]:
In [25]:
new_log(-1)
Out[25]:
In [26]:
def greeting(expr):
def greeting_decorator(func):
def function_wrapper(x):
print(expr + ", " + func.__name__ + " returns:")
func(x)
return function_wrapper
return greeting_decorator
@greeting("You")
def foo(x):
print(42)
foo("Hi")
In [27]:
def greeting(expr):
def greeting_decorator(func):
def function_wrapper(x):
print(expr + ", " + func.__name__ + " returns:")
func(x)
return function_wrapper
return greeting_decorator
def foo(x):
print(42)
greeting2 = greeting("Kochany")
foo = greeting2(foo)
foo("Hi")
In [ ]:
In [ ]: