Scope

Writing Functions in Python

Shayne Miel

Software Architect @ Duo Security

Names

tom

Writing Functions in Python

Names

tom and janelle

Writing Functions in Python

Scope

tom and janelle

Writing Functions in Python

Scope

tom, janelle, and another tom

Writing Functions in Python

Scope

x = 7
y = 200
print(x)
7
def foo():
    x = 42
    print(x)
    print(y)
foo()
42
200
print(x)
7
Writing Functions in Python

Scope

scope_question

Writing Functions in Python

Scope

local scope

Writing Functions in Python

Scope

global scope

Writing Functions in Python

Scope

builtin scope

Writing Functions in Python

Scope

nonlocal scope

Writing Functions in Python

The global keyword

x = 7

def foo():
  x = 42
  print(x)

foo()
42
print(x)
7
x = 7

def foo():
  global x
  x = 42
  print(x)

foo()
42
print(x)
42
Writing Functions in Python

The nonlocal keyword

def foo():
  x = 10

  def bar():
    x = 200
    print(x)

  bar()
  print(x)

foo()
200
10
def foo():
  x = 10

  def bar():
    nonlocal x
    x = 200
    print(x)

  bar()
  print(x)

foo()
200
200
Writing Functions in Python

Let's practice!

Writing Functions in Python

Preparing Video For Download...