見出し画像

イントロスペクションとリフレクションを「写経」した

お疲れ様です。Y研究員です。プログラミング文体練習を写経しています。途中まで各章ごとに書いてきました。しかし、どれも短かったのでここでは2章をまとめて「写経」した感想を書いています。

17−イントロスペクション

呼び出された元の関数名や渡された関数名を確認するプログラムです。解説には複雑さを低く保ったまま、強力な動作ができると書いてあります。ただし複雑になるので、どうしても必要なときだけ使うべきだと書いてあります。しかし具体例がなかったのでChat-GPT4に聞いてみました。

何個か例が示されました。一番面白かったのが変更できない外部製のライブラリは古いコードを分析するのに使える、という回答です。その他にもデバッグツールを作るために使えると書いてありました。ただし実行時に解析するので動作は遅くなるし、脆弱性の元にもなるので気をつけろ、とも言われました。

18ーリフレクション

実行時にプログラムを書き換えるプログラムです。Pythonではプログラムを文字列に書き込んで、それをexecします。かなり強力ですが、同時に危険でもあります。本には90年代以降に設計された言語は、バランスを取って考え方が受け継がれていると書いてありました。実際にはプラグインなどを受け付けるときに使うようです。

それではまた!

と、書きかけだった記事を見つけて投稿しました。短くても1章づつ「写経」をしては投稿した方がペースが続くと分かりました。

無料のプログラミングクラブCoderDojoを運営するにあたり寄付を受け付けています。お金は会場費・Wifiの費用・教科書に使用します。