hi folks, I've come up with a simple snippet that intends to explain the concept of decorations without an article (for on app help), while being succinct and concise, while not being overly complicated.

Does this work? I have another one coming for args, similar, if this works... comments appreciated. thanks.

# BEGIN FUNCTION DECORATOR SIMPLE ################################
#
# define the function decorator (wrapper function)
def enter_exit(f):
        def new_f():
                print("entering", f.__name__)
                f()
                print(f.__name__, "exited !", end="\n\n")
        return new_f

# the above "function decoration" takes a 'callable' as an argument
#    and returns a 'callable' new function that is used to
#    replace the original function (function is decorated),  which
#    adds functionality to the original function being decorated ...

# define the original function
def f1():
        print("    inside f1()")

# replace the original function (above) with the new decorated
#    'wrapped' function using the function decoration 'enter_exit'...
f1 = enter_exit(f1)

# (OR) accomplish the same thing with decoration lines as below:

# functions wrapped with decoration lines syntax (annotations)
#    as below, accomplish the same 'decoration' as above
#    by using some 'syntactic sugar' to accomplish same ...

@enter_exit
def f2():
        print("    inside f2()")

@enter_exit
def f3():
        print("    inside f3()")

# demo the new 'decorated' functions
f1()
f2()
f3()

# END FUNCTION DECORATOR SIMPLE ##################################


--
https://mail.python.org/mailman/listinfo/python-list

Reply via email to