回答編集履歴
3
よく考えたらサンプルになってなかった
    
        answer	
    CHANGED
    
    | @@ -7,16 +7,21 @@ | |
| 7 7 | 
             
                print('hoge')
         | 
| 8 8 |  | 
| 9 9 | 
             
            def spam_ham(func):
         | 
| 10 | 
            +
                print('spam')
         | 
| 10 11 | 
             
                func()
         | 
| 12 | 
            +
                print('ham')
         | 
| 11 13 |  | 
| 12 14 | 
             
            spam_ham(hoge)
         | 
| 13 15 |  | 
| 14 16 | 
             
            """実行結果
         | 
| 17 | 
            +
            spam
         | 
| 15 18 | 
             
            hoge
         | 
| 19 | 
            +
            ham
         | 
| 16 20 | 
             
            """
         | 
| 17 21 | 
             
            ```
         | 
| 18 22 |  | 
| 19 23 | 
             
            関数の実行結果が渡されるわけではありません。
         | 
| 24 | 
            +
            (実行されてから渡されるなら、第一行目にhogeと表示されるはず)
         | 
| 20 25 |  | 
| 21 26 | 
             
            ---
         | 
| 22 27 | 
             
            上記の例に加えて、こちらの例も示したいと思います。
         | 
2
追記
    
        answer	
    CHANGED
    
    | @@ -1,4 +1,7 @@ | |
| 1 | 
            +
            > これはつまりscramble()の引数potatoは関数で、
         | 
| 2 | 
            +
            > 関数が呼ばれてeggがreturnされ、scramble()の引数にeggが入ったということでしょうか?
         | 
| 3 | 
            +
             | 
| 1 | 
            -
            Pythonでは、**関数そのもの**を渡すことが可能です。
         | 
| 4 | 
            +
            その認識は異なります。Pythonでは、**関数そのもの**を渡すことが可能です。
         | 
| 2 5 | 
             
            ```Python
         | 
| 3 6 | 
             
            def hoge():
         | 
| 4 7 | 
             
                print('hoge')
         | 
| @@ -24,9 +27,13 @@ | |
| 24 27 | 
             
            func = fuga    # 関数を代入
         | 
| 25 28 | 
             
            text = fuga()  # 関数の実行結果を代入
         | 
| 26 29 |  | 
| 30 | 
            +
            print(type(func))    # <class 'function'>
         | 
| 31 | 
            +
            print(type(text))    # <class 'str'>
         | 
| 32 | 
            +
             | 
| 27 33 | 
             
            func()         # 関数は呼び出せる
         | 
| 28 34 | 
             
            # text()       # 関数じゃないから呼び出せない
         | 
| 35 | 
            +
            ```
         | 
| 29 36 |  | 
| 30 | 
            -
            print(type(func))    # <class 'function'>
         | 
| 31 | 
            -
            print(type(text))    # <class 'str'>
         | 
| 32 | 
            -
             | 
| 37 | 
            +
            ---
         | 
| 38 | 
            +
            これ以降、デコレータとは何ぞや、クロージャとは何ぞや、という理解が必要ですが、
         | 
| 39 | 
            +
            そちらに関しましてはYouheiSakuraiさんの非常に丁寧かつ明確な回答をご覧ください。
         | 
1
追記
    
        answer	
    CHANGED
    
    | @@ -13,4 +13,20 @@ | |
| 13 13 | 
             
            """
         | 
| 14 14 | 
             
            ```
         | 
| 15 15 |  | 
| 16 | 
            -
            関数の実行結果が渡されるわけではありません。
         | 
| 16 | 
            +
            関数の実行結果が渡されるわけではありません。
         | 
| 17 | 
            +
             | 
| 18 | 
            +
            ---
         | 
| 19 | 
            +
            上記の例に加えて、こちらの例も示したいと思います。
         | 
| 20 | 
            +
            ```Python
         | 
| 21 | 
            +
            def fuga():
         | 
| 22 | 
            +
                return 'fuga'
         | 
| 23 | 
            +
             | 
| 24 | 
            +
            func = fuga    # 関数を代入
         | 
| 25 | 
            +
            text = fuga()  # 関数の実行結果を代入
         | 
| 26 | 
            +
             | 
| 27 | 
            +
            func()         # 関数は呼び出せる
         | 
| 28 | 
            +
            # text()       # 関数じゃないから呼び出せない
         | 
| 29 | 
            +
             | 
| 30 | 
            +
            print(type(func))    # <class 'function'>
         | 
| 31 | 
            +
            print(type(text))    # <class 'str'>
         | 
| 32 | 
            +
            ```
         | 
