スコープ

Python関数の書き方

Shayne Miel

Software Architect @ Duo Security

名前

トム

Python関数の書き方

名前

トムとジャネル

Python関数の書き方

スコープ

トムとジャネル

Python関数の書き方

スコープ

トム、ジャネル、別のトム

Python関数の書き方

スコープ

x = 7
y = 200
print(x)
7
def foo():
    x = 42
    print(x)
    print(y)
foo()
42
200
print(x)
7
Python関数の書き方

スコープ

スコープの問題

Python関数の書き方

スコープ

ローカルスコープ

Python関数の書き方

スコープ

グローバルスコープ

Python関数の書き方

スコープ

組み込みスコープ

Python関数の書き方

スコープ

非ローカルスコープ

Python関数の書き方

globalキーワード

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
Python関数の書き方

nonlocalキーワード

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
Python関数の書き方

練習しましょう!

Python関数の書き方

Preparing Video For Download...