Skip to content

Instantly share code, notes, and snippets.

View adrianmarkperea's full-sized avatar

Adrian Perea adrianmarkperea

View GitHub Profile
def debug_transformer(fun):
def wrapper():
print(f'Function `{fun.__name__}` called')
fun()
print(f'Function `{fun.__name__}` finished')
return wrapper
@debug_transformer
# Before
walkout = debug_transformer(walkout)
# After
@debug_transformer
def walkout():
print('Bye Felicia')
def debug_transformer(fun):
def wrapper():
print(f'Function `{fun.__name__}` called')
fun()
print(f'Function `{fun.__name__}` finished')
return wrapper
@debug_transformer
def wrapper():
print(f'Function `{fun.__name__}` called')
fun() # Original reference to walkout()
print(f'Function `{fun.__name__}` finished')
walkout = debug_transformer(walkout)
Function `walkout` called
Bye Felicia
Function `walkout` finished
def walkout():
print('Bye Felicia')
def debug_transformer(fun):
def wrapper():
print(f'Function `{fun.__name__}` called')
fun()
print(f'Function `{fun.__name__}` finished')
Hello, Bob!
Goodbye, Bob!
def say_hello(name):
print(f'Hello, {name}!')
def say_goodbye(name):
print(f'Goodbye, {name}!')
def get_greeting(greeting):
if greeting == 'hello':
>>> say_to_bob(say_hello())
TypeError: say_hello() missing 1 required positional argument: 'name'