I hope all the images on this page are self explainatory. But let me cover in brief.
Syntax
1
2
3
4
5
def function_name(parameters):
"""docstring"""
statement(s)
print(function_name.__doc__);
In Python, you can create a method/ function/ procedure (or whatever you call it) with required and optional parameters. Optional parameters can have either default value or they can accept any number of arguments (from 0 to *any). You can pass these optional arguments as single value or with key-value pair. But their sequence should match with what is defined in method definition. Required parameters are also called positional. So you can’t interchange them while calling the function.
Packing and unpacking of arguments and parameters:
Nested Functions
Arguments passed to the original function will be passed to inner function of decorator function automatically.
But what if you need to pass arguments to a decorator function
Now what if you have to support a decorator with arguments and without arguments
1
2
3
4
5
6
7
8
9
10
11
def repeat(arg):
# @repeat without arguments
if callable(arg):
# If the argument is a function, it means
num_times = 1
fn = arg
# @repeat with arguments
else:
num_times = arg
def decorator(fn):
:
Yeah I know!! This is not cool. One more thing, you can also chain decorators
A function can be written in a single line as an expression using
lambda
keyword.
1 (lambda x, y: x + y)(5, 3) #8
Quiz
Let’s check if you really understand it. Remember that a question may have multiple answers.
I hope now it is pretty clear to you. If you still have any doubt then let’s catch up on the discussion page.
Your feedback is really important. So I can improve my future articles and correct what I have already published. You can also suggest if you want me to write an article on particular topic. If you really like this blog, or article, please share with others. That's the only way I can buy time to write more articles.