Python Nested Functions

Functions in Python can be nested inside other functions.

A function defined inside a function is visible only inside that function.

This is useful to create utilities that are useful to a function, but not useful outside of it.

You might ask: why should I be “hiding” this function, if it does not harm?

One, because it’s always best to hide functionality that’s local to a function, and not useful elsewhere.

Also, because we can make use of closures (more on this later).

Here is an example:

def talk(phrase):
    def say(word):
        print(word)

    words = phrase.split(' ')
    for word in words:
        say(word)

talk('I am going to buy the milk')

If you want to access a variable defined in the outer function from the inner function, you first need to declare it as nonlocal:

def count():
    count = 0

    def increment():
        nonlocal count
        count = count + 1
        print(count)

    increment()

count()

This is useful especially with closures, as we’ll see later.


This content originally appeared on flaviocopes.com and was authored by flaviocopes.com

Functions in Python can be nested inside other functions.

A function defined inside a function is visible only inside that function.

This is useful to create utilities that are useful to a function, but not useful outside of it.

You might ask: why should I be “hiding” this function, if it does not harm?

One, because it’s always best to hide functionality that’s local to a function, and not useful elsewhere.

Also, because we can make use of closures (more on this later).

Here is an example:

def talk(phrase):
    def say(word):
        print(word)

    words = phrase.split(' ')
    for word in words:
        say(word)

talk('I am going to buy the milk')

If you want to access a variable defined in the outer function from the inner function, you first need to declare it as nonlocal:

def count():
    count = 0

    def increment():
        nonlocal count
        count = count + 1
        print(count)

    increment()

count()

This is useful especially with closures, as we’ll see later.


This content originally appeared on flaviocopes.com and was authored by flaviocopes.com


Print Share Comment Cite Upload Translate Updates
APA

flaviocopes.com | Sciencx (2021-01-06T05:00:00+00:00) Python Nested Functions. Retrieved from https://www.scien.cx/2021/01/06/python-nested-functions/

MLA
" » Python Nested Functions." flaviocopes.com | Sciencx - Wednesday January 6, 2021, https://www.scien.cx/2021/01/06/python-nested-functions/
HARVARD
flaviocopes.com | Sciencx Wednesday January 6, 2021 » Python Nested Functions., viewed ,<https://www.scien.cx/2021/01/06/python-nested-functions/>
VANCOUVER
flaviocopes.com | Sciencx - » Python Nested Functions. [Internet]. [Accessed ]. Available from: https://www.scien.cx/2021/01/06/python-nested-functions/
CHICAGO
" » Python Nested Functions." flaviocopes.com | Sciencx - Accessed . https://www.scien.cx/2021/01/06/python-nested-functions/
IEEE
" » Python Nested Functions." flaviocopes.com | Sciencx [Online]. Available: https://www.scien.cx/2021/01/06/python-nested-functions/. [Accessed: ]
rf:citation
» Python Nested Functions | flaviocopes.com | Sciencx | https://www.scien.cx/2021/01/06/python-nested-functions/ |

Please log in to upload a file.




There are no updates yet.
Click the Upload button above to add an update.

You must be logged in to translate posts. Please log in or register.