5倍速!メールマガジン
外部アカウントで登録
             
         
    
受講生の声
新着の講座投稿
新着の講座コメント
新着のノート投稿
投稿一覧へ新着のノートコメント
表示できる投稿はありません。
サイト運営者紹介
 
        小川 慶一講師/教材/システム開発者紹介
この学習サイトの教材制作、サポート、システム開発をすべてやっています。
 
                             
                             
                             
                         
         
    
表示できる投稿はありません。
 
        この学習サイトの教材制作、サポート、システム開発をすべてやっています。
 
受講生さんの投稿
(投稿ID: 5438)
ご返信いただけますと幸いです。
動画の8:35あたりの第2形態に関する
”new_func = print_timestamp(show_weather_info)”に関する説明ですが、
「関数が関数を受け取って新しい関数を作る」
とおっしゃっていたのですが、どの関数がなんの関数を受け取って新しい関数作っているかの理解ですが、
「print_timestampという関数がshow_weather_infoという関数をうけとってnew_funcという関数を作る」
という理解であっておりますでしょうか?
小川 慶一さんのコメント
(コメントID: 8042)
> 「print_timestampという関数がshow_weather_infoという関数をうけとってnew_funcという関数を作る」
という理解であっておりますでしょうか?
この動画でしっかり理解してほしいところについては、概ね理解できているだろうと感じます。
ただ、ちょっと気になる点があります。
[a] print_timestampという関数が: OKです
[b] show_weather_infoという関数をうけとって: OKです
[c] new_funcという関数を作る: ちょっと気になります。
[c] についてより正確に表現するならば、以下のとおりです。
[c-1] print_timestamp という関数 は、その内部で定義されている wrapper という関数を返します。
[c-2] 変数 new_func は、print_timestamp から返されたこの wrapper という関数を受け取ります。
上記 [c-1], [c-2] の手続き以降は、 print_timestamp が返した wrapper 関数は new_func という名前で利用可能になります。
[参考]
以下のようなコードがあったとして、
「concat_strsという関数が"Pythonの沼へ (^^;"という文字列をうけとってresultという文字列を作る」
とは言いませんね。
以下のような表現のほうがより適切だということは、サイコロさんもご理解いただけるものと思います。
「concat_strsという関数が"Pythonの沼へ (^^;"という文字列をうけとって"ようこそPythonの沼へ (^^;"という文字列を作る。変数 result は、concat_strs から返されたこの"ようこそPythonの沼へ (^^;"という文字札を受け取る。」
今紹介した2つの文章にでてくる登場人物をそのまま入れ替えたのが、ご質問にあるサイコロさんの作った文章と僕が作った文章です。
じっくり比較検討してみてください (^^*
サイコロさんのコメント
(コメントID: 8043)
ご返信ありがとうございます。作るのではなく、受け取っているということ理解できました。
変数はなにかを受け取るということですね。関数の記述の仕方が変数名と同様でsnake_caseで記載されているので、オブジェクト(snake_kaseで書かれた英語のかたまりや単語)が変数・関数・ビルトイン関数のどれかに値してありどんな機能となり、どういう仕組みで動いているかちゃんと分かっていたのか心配だったので、ご返信いただき少々もやが晴れた気がします。まだまだ難しいですがとりあえず先に進んで共有いただいた資料を動かして慣れていきたいと思います。