LoginSignup
2
1

More than 3 years have passed since last update.

【Udemy Python3入門+応用】 56. クロージャー

Posted at

※この記事はUdemyの
現役シリコンバレーエンジニアが教えるPython3入門+応用+アメリカのシリコンバレー流コードスタイル
の講座を受講した上での、自分用の授業ノートです。
講師の酒井潤さんから許可をいただいた上で公開しています。

■クロージャー

難しい内容になるので、今の段階では「こんなものがあるんだな」とわかればOK。

closure
def circle_area_func(pi):

    # radiusを渡すと円の面積が返ってくる
    def circle_area(radius):
        return pi * radius * radius

    # circle_areaを返すだけで実行はしない
    return circle_area

# piを3としてcircle_area_funcに渡し、返ってきたcircle_areaをcal1に代入
cal1 = circle_area_func(3)
# piを3.14としてcircle_area_funcに渡し、返ってきたcircle_areaをcal2に代入
cal2 = circle_area_func(3.14)

# radiusを10としてcal1に渡し、結果をprint
print(cal1(10))
# radiusを10としてcal2に渡し、結果をprint
print(cal2(10))
result
300
314.0

クロージャーは、今回のように
初めに設定した引数(pi)を後々用途応じて使い分けたい(3とするのか3.14にするのか)とき
などに有効な手段なので、頭の片隅に置いておこう。

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1