拡張または上書きします。どちらもよくわからない文章ですね。そこで次の項目を読んで見てください。partial関数を使いたくなる場面をイメージしてみましょう。functools.paritialのメリットとは?まず以下のようなコードを考えてみます。Morningとなります。今回の関数greetは2「種類」の引数を持っています。1種類目は、名前についての引数。1種類は時間についての引数(これはキーワード引数です)です。この関数greetを使うときに、時間についてだけ変更(例:上のMorningからEveningへ)したいときがあるかもしれません。“Tom”」の部分は同じことを繰り返して書くハメになっています。これって面倒じゃないですか?変えたいのは1箇所だけで、後はそのままでいいのに、いちいち変わらないところをまた書くというのは手間ですよね。変えたいところだけ変えて書ければ便利ですよね?そんなときに使えるのが今回紹介するfunctools.partialです。time="Morning")今回の解説では、このコードのあとに次のコードを付け足していくようにします。仮引数nameについては、可変長引数(*がついている)であることに注意してください。**kwargsとは?その解説」をごらんください。使用例その1では上のコードに続けて、次のように書きます。Eveningとなります。これについて考えるときには、次の3点をよく頭に入れてください。partialの対象となる関数greet関数greetが持っている引数の情報(今回はnameとtimeの2つ)この使用例その1の結果では、timeの情報だけ変更しています。変更したいのはその部分だけで、他の引数(今回はname)はそのままです。したがって、timeのところだけ変更した書き方にしたいわけです。"Tom")このpartialを使った部分は、変更の必要のないnameという引数の情報は「凍結」(固定)した状態の新しい関数オブジェクトを作成しています。それがpartialの機能なんですね。すると、あとは変えたい引数のところだけを書けばいいわけです。new_fnc(time="Evening")まさにこれがその希望どおりの書き方になっています。いちいち変更する必要のない引数の情報を何度も書き直す手間がなくなっています。今回は引数の種類が2つだけでしたが、もしこれが10種類とかになれば・・・そうとんでもない手間になりますよね。その手間を省き、またコードもどの引数を変更したのか見やすくしてくれる。これが上述のようなpartialのメリットです。使用例その2上の使用例その1ではキーワード引数であるtimeの情報を変更しました。次にnameの情報を変更してみましょう。"Jack")変更したいのはnameで、変更不要なのはtimeです。したがってtimeをpatialによって「凍結」(固定)させています。Morningいい感じですね。"Morning"})この例では、引数nameの情報にもう新しい名前の”Lie”を付け加えました。引数timeは辞書形式にしています。'Evening'}nameには、Lieが追加されたtimeには、辞書が設定されたという点に着目してください。以上、簡単ながらfuntoolsモジュールが提供するpartial関数についての解説でした。したことを踏まえて、公式ドキュメントを読んでもらえればその内容は理解しやすいと思います。【PR】がオススメです。[テックアカデミー]【PR】マイペースで学ぶなら世界最大級の動画学習サイトUdemyがオススメです。関連投稿Pythonの抽象基底クラス(ABC)の基本を解説。