Python - Decorators

Decorators


Example 1

def outer(func):
    def inner():
        print("Accessing :", func.__name__)
        return func()
    return inner
def greet():
   print('Hello!')
wish = outer(greet)
wish()

Output

Accessing : greet
Hello!

Example 2
def outer(func):
   def inner():
        print("Accessing :", func.__name__)
        return func()
    return inner
def greet():
   return 'Hello!'
greet = outer(greet) # decorating 'greet'
greet()              # calling new 'greet'

Output

Accessing : greet

Example 3
def outer(func):
    def inner():
        print("Accessing :", func.__name__)
        return func()
    return inner
@outer
def greet():
    return 'Hello!'
greet()

Output

Accessing : greet

Example 4
def outer(func):
    def inner(msg):
        print("Hello Mr." + msg)
        return func(msg)
    return inner
@outer
def greet(msg):
    return msg
val=input("What is your name? : ")
greet(val)

Output

What is your name? : Bob
Hello Mr.Bob

No comments:

Post a Comment