Skip to content

Functions

Functions are defined with the def keyword. They can take any number of named arguments, which can be given a default value with an =. Functions also receive an optional *args, or postiional arguments, and **kwargs, or key word arguments.

Functions in python are first-class objects, meaning they can be returned from other functions or passed as arguments into other functions.

python
def hello(name="David"):
    return "Hello " + name

def options_args(arg1, *args):
    print("First argument :", arg1)
    for arg in args:
        print("Next argument through *args :", arg)
        
options_args('Hello', 'Welcome', 'to', 'my', 'docs!')

def optional_kwargs(arg1, **kwargs):
    for key, value in kwargs.items():
        print("%s == %s" % (key, value))
 
optional_kwargs("Hi", first='Hello', mid='world', last='!')

# Functions can also be returned
def cool():
    def super_cool():
        return "I am very cool"
    return super_cool

# or passed as an argument
def other(some_other_func):
    some_other_func()