「Pythonの基礎 - クロージャ」の版間の差分

ナビゲーションに移動 検索に移動
文字列「<source」を「<syntaxhighlight」に置換
(Wiki がページ「クロージャ(Python)」を「Pythonの基礎 - クロージャ」に、リダイレクトを残さずに移動しました)
(文字列「<source」を「<syntaxhighlight」に置換)
8行目: 8行目:
== クロージャを理解する ==
== クロージャを理解する ==
まず、クロージャを理解するために、関数内関数を見ておく。<br>
まず、クロージャを理解するために、関数内関数を見ておく。<br>
  <source lang="python">
  <syntaxhighlight lang="python">
  def OuterFunc(a, b):
  def OuterFunc(a, b):
     def InnerFunc():
     def InnerFunc():
27行目: 27行目:
これは、まだInnerFunc関数が実行されていない状態である。<br>
これは、まだInnerFunc関数が実行されていない状態である。<br>
この状態を記憶して、後で使用することができるものがクロージャである。ここでは、InnerFuncがクロージャになる。<br>
この状態を記憶して、後で使用することができるものがクロージャである。ここでは、InnerFuncがクロージャになる。<br>
  <source lang="python">
  <syntaxhighlight lang="python">
  def OuterFunc(a, b):
  def OuterFunc(a, b):
     def InnerFunc():
     def InnerFunc():
44行目: 44行目:
クロージャを実行するには、次のように行う。<br>
クロージャを実行するには、次のように行う。<br>
以下の例では、OuterFunc関数をfuncオブジェクトに代入している。これに、丸括弧()を付けてfuncオブジェクトを実行している。<br>
以下の例では、OuterFunc関数をfuncオブジェクトに代入している。これに、丸括弧()を付けてfuncオブジェクトを実行している。<br>
  <source lang="python">
  <syntaxhighlight lang="python">
  def OuterFunc(a, b):
  def OuterFunc(a, b):
     def InnerFunc():
     def InnerFunc():
63行目: 63行目:
まず、2種類の横の数値を与えた後、オブジェクト変数ac1とac2にAreaCalcFuncオブジェクトを代入している。<br>
まず、2種類の横の数値を与えた後、オブジェクト変数ac1とac2にAreaCalcFuncオブジェクトを代入している。<br>
このオブジェクト変数ac1とac2に丸括弧()を付けて縦の数値を与えることで計算が実行される。<br>
このオブジェクト変数ac1とac2に丸括弧()を付けて縦の数値を与えることで計算が実行される。<br>
  <source lang="python">
  <syntaxhighlight lang="python">
  def AreaCalc(width):
  def AreaCalc(width):
     def AreaCalcFunc(height):
     def AreaCalcFunc(height):

案内メニュー