<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Functoolsモジュール（ライブラリ） | Men of Letters（メン・オブ・レターズ） &#8211; 論理的思考/業務改善/プログラミング</title>
	<atom:link href="https://laboratory.kazuuu.net/category/functools%e3%83%a2%e3%82%b8%e3%83%a5%e3%83%bc%e3%83%ab/feed/" rel="self" type="application/rss+xml" />
	<link>https://laboratory.kazuuu.net</link>
	<description></description>
	<lastBuildDate>Sat, 15 Jan 2022 20:59:39 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9</generator>

<image>
	<url>https://laboratory.kazuuu.net/wp-content/uploads/2021/02/cropped-L-32x32.png</url>
	<title>Functoolsモジュール（ライブラリ） | Men of Letters（メン・オブ・レターズ） &#8211; 論理的思考/業務改善/プログラミング</title>
	<link>https://laboratory.kazuuu.net</link>
	<width>32</width>
	<height>32</height>
</image> 
<atom:link rel="hub" href="https://pubsubhubbub.appspot.com"/><atom:link rel="hub" href="https://pubsubhubbub.superfeedr.com"/><atom:link rel="hub" href="https://websubhub.com/hub"/>	<item>
		<title>PythonのFunctoolsモジュールの部分関数の引数（パラメータ）の順序</title>
		<link>https://laboratory.kazuuu.net/argument-order-of-partial-functions-in-pythons-functools-module/</link>
					<comments>https://laboratory.kazuuu.net/argument-order-of-partial-functions-in-pythons-functools-module/#respond</comments>
		
		<dc:creator><![CDATA[小林]]></dc:creator>
		<pubDate>Sat, 15 Jan 2022 20:59:39 +0000</pubDate>
				<category><![CDATA[Functoolsモジュール（ライブラリ）]]></category>
		<category><![CDATA[Python【初歩から現場実務的なもの】]]></category>
		<guid isPermaLink="false">https://laboratory.kazuuu.net/?p=11162</guid>

					<description><![CDATA[PythonのFunctoolsモジュールの部分関数の引数（パラメータ）の順序について解説します。 PythonのFunctoolsモジュールを使用し部分関数を作成した場合に、位置引数の代わりにキーワード引数を使用するこ [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>PythonのFunctoolsモジュールの部分関数の引数（パラメータ）の順序について解説します。</p>
<p>PythonのFunctoolsモジュールを使用し部分関数を作成した場合に、位置引数の代わりにキーワード引数を使用することができます。</p>

  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-2" checked><label class="toc-title" for="toc-checkbox-2">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">■Python</a></li><li><a href="#toc2" tabindex="0">■部分関数を作成しキーワード引数を使用する</a><ol><li><a href="#toc3" tabindex="0">■コード</a></li></ol></li><li><a href="#toc4" tabindex="0">■実行・検証</a></li><li><a href="#toc5" tabindex="0">■キーワード引数を設定しないとどうなるのか</a><ol><li><a href="#toc6" tabindex="0">■コード</a></li></ol></li><li><a href="#toc7" tabindex="0">■実行・検証</a></li></ol>
    </div>
  </div>

<h2><span id="toc1">■Python</span></h2>
<p><a href="https://laboratory.kazuuu.net/wp-content/uploads/2021/06/2021_06_09_10-2.png"><img fetchpriority="high" decoding="async" class="alignnone size-medium wp-image-8981" src="https://laboratory.kazuuu.net/wp-content/uploads/2021/06/2021_06_09_10-2-300x184.png" alt="" width="300" height="184" srcset="https://laboratory.kazuuu.net/wp-content/uploads/2021/06/2021_06_09_10-2-300x184.png 300w, https://laboratory.kazuuu.net/wp-content/uploads/2021/06/2021_06_09_10-2-1024x629.png 1024w, https://laboratory.kazuuu.net/wp-content/uploads/2021/06/2021_06_09_10-2-768x472.png 768w, https://laboratory.kazuuu.net/wp-content/uploads/2021/06/2021_06_09_10-2.png 1250w" sizes="(max-width: 300px) 100vw, 300px" /></a></p>
<p>Google Colaboratory(Google Colab),Python3.7.10</p>
<h2><span id="toc2">■部分関数を作成しキーワード引数を使用する</span></h2>
<p>では、PythonのFunctoolsモジュールを使用し部分関数を作成してみます。</p>
<h3><span id="toc3">■コード</span></h3>
<pre>from functools import partial

def func_test(a,b,c,d):
  return a*2 + b*3 + c*4 + d

result = partial(func_test,c=4,d=5) 

print(result(1,2))</pre>
<p>「from import」でFunctoolsモジュールのpartialを呼び出します。今回はdef文でfunc_testという関数を定義し、関数に渡す引数,パラメータをa,b,c,dに設定します。関数が呼びされた時に、実行される処理としては、returnでaと2、bと3、cと4を代数演算子”*（アスタリスク）”を用い乗算（掛け算）し、それらすべての数値をdに代数演算子”+（プラス）”を用い加算（足し算）した数値を返すものです。</p>
<p>func_testを定義後、resultを定義し、partial()を用いて括弧内に第1の引数,パラメータとして、定義した呼び出す関数の名前を渡します。第2の引数,パラメータで、キーワード引数を用いて、今回はcに「4」、dに「5」を渡します。これで関数が呼び出され、部分関数が作成されます。</p>
<p>最後に、result()を呼び出してみます。呼び出す際は括弧内に部分関数に渡す数値を入れます。</p>
<h2><span id="toc4">■実行・検証</span></h2>
<p>このスクリプトを作成後、このスクリプトを実行してみます。</p>
<p><a href="https://laboratory.kazuuu.net/wp-content/uploads/2021/12/スクリーンショット-2021-12-06-084724-1.png"><img decoding="async" class="alignnone size-medium wp-image-11163" src="https://laboratory.kazuuu.net/wp-content/uploads/2021/12/スクリーンショット-2021-12-06-084724-1-300x168.png" alt="" width="300" height="168" srcset="https://laboratory.kazuuu.net/wp-content/uploads/2021/12/スクリーンショット-2021-12-06-084724-1-300x168.png 300w, https://laboratory.kazuuu.net/wp-content/uploads/2021/12/スクリーンショット-2021-12-06-084724-1-1024x573.png 1024w, https://laboratory.kazuuu.net/wp-content/uploads/2021/12/スクリーンショット-2021-12-06-084724-1-768x430.png 768w, https://laboratory.kazuuu.net/wp-content/uploads/2021/12/スクリーンショット-2021-12-06-084724-1-120x68.png 120w, https://laboratory.kazuuu.net/wp-content/uploads/2021/12/スクリーンショット-2021-12-06-084724-1-160x90.png 160w, https://laboratory.kazuuu.net/wp-content/uploads/2021/12/スクリーンショット-2021-12-06-084724-1-320x180.png 320w, https://laboratory.kazuuu.net/wp-content/uploads/2021/12/スクリーンショット-2021-12-06-084724-1.png 1250w" sizes="(max-width: 300px) 100vw, 300px" /></a></p>
<p>実行してみると、Functoolsモジュールのpartial()を用いたことで、部分関数が作成され、作成した部分関数の処理が実行。この時に、キーワード引数で渡した数値と、関数を呼び出す際に渡した数値を元に処理が実行され、結果（戻り値）をprint()関数で出力させることができました。</p>
<h2><span id="toc5">■キーワード引数を設定しないとどうなるのか</span></h2>
<h3><span id="toc6">■コード</span></h3>
<pre>from functools import partial

def func_test(a,b,c,d):
  return a*2 + b*3 + c*4 + d

result = partial(func_test,5,4) 

print(result(1,2))</pre>
<p>実行後、先程コードはほとんど同じですが、今度はキーワード引数を使用せずに位置引数のみで、引数の順序を変更してみます。</p>
<h2><span id="toc7">■実行・検証</span></h2>
<p>このスクリプトを実行してみます。</p>
<p><a href="https://laboratory.kazuuu.net/wp-content/uploads/2021/12/スクリーンショット-2021-12-06-085204-1.png"><img decoding="async" class="alignnone size-medium wp-image-11164" src="https://laboratory.kazuuu.net/wp-content/uploads/2021/12/スクリーンショット-2021-12-06-085204-1-300x215.png" alt="" width="300" height="215" srcset="https://laboratory.kazuuu.net/wp-content/uploads/2021/12/スクリーンショット-2021-12-06-085204-1-300x215.png 300w, https://laboratory.kazuuu.net/wp-content/uploads/2021/12/スクリーンショット-2021-12-06-085204-1-1024x734.png 1024w, https://laboratory.kazuuu.net/wp-content/uploads/2021/12/スクリーンショット-2021-12-06-085204-1-768x551.png 768w, https://laboratory.kazuuu.net/wp-content/uploads/2021/12/スクリーンショット-2021-12-06-085204-1.png 1250w" sizes="(max-width: 300px) 100vw, 300px" /></a></p>
<p>実行してみると、先程のキーワード引数とは異なる結果がprint()関数を用いたことで出力されました。この結果からキーワード引数を用いないと、結果が変わるということがわかりました。これは重要です。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://laboratory.kazuuu.net/argument-order-of-partial-functions-in-pythons-functools-module/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>PythonのFunctoolsモジュールを使用し部分関数を作成する</title>
		<link>https://laboratory.kazuuu.net/create-a-partial-function-using-pythons-functools-module/</link>
					<comments>https://laboratory.kazuuu.net/create-a-partial-function-using-pythons-functools-module/#respond</comments>
		
		<dc:creator><![CDATA[小林]]></dc:creator>
		<pubDate>Fri, 14 Jan 2022 21:04:10 +0000</pubDate>
				<category><![CDATA[Functoolsモジュール（ライブラリ）]]></category>
		<category><![CDATA[Python【初歩から現場実務的なもの】]]></category>
		<guid isPermaLink="false">https://laboratory.kazuuu.net/?p=11154</guid>

					<description><![CDATA[PythonのFunctoolsモジュールを使用し部分関数を作成してみます。 部分関数とは、特定の引数（パラメータ）値に対するオリジナルの関数のことで、部分関数を作成するには、Functoolsモジュールからpartia [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>PythonのFunctoolsモジュールを使用し部分関数を作成してみます。</p>
<p>部分関数とは、特定の引数（パラメータ）値に対するオリジナルの関数のことで、部分関数を作成するには、Functoolsモジュールからpartial()を用います。</p>

  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-4" checked><label class="toc-title" for="toc-checkbox-4">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">■基本的な構文</a></li><li><a href="#toc2" tabindex="0">■Python</a></li><li><a href="#toc3" tabindex="0">■部分関数を作成する</a><ol><li><a href="#toc4" tabindex="0">■コード</a></li></ol></li><li><a href="#toc5" tabindex="0">■実行・検証</a></li></ol>
    </div>
  </div>

<h2><span id="toc1">■基本的な構文</span></h2>
<pre>partial(func, /, *args, ** kwargs)</pre>
<p>partial()の括弧内に、固定の位置引数,パラメータとキーワード引数,パラメータを渡し、さらに「func（関数の名前）」を記述し渡すことで、関数が呼び出され、部分関数が作成されます。</p>
<h2><span id="toc2">■Python</span></h2>
<p><a href="https://laboratory.kazuuu.net/wp-content/uploads/2021/06/2021_06_09_10-2.png"><img loading="lazy" decoding="async" class="alignnone size-medium wp-image-8981" src="https://laboratory.kazuuu.net/wp-content/uploads/2021/06/2021_06_09_10-2-300x184.png" alt="" width="300" height="184" srcset="https://laboratory.kazuuu.net/wp-content/uploads/2021/06/2021_06_09_10-2-300x184.png 300w, https://laboratory.kazuuu.net/wp-content/uploads/2021/06/2021_06_09_10-2-1024x629.png 1024w, https://laboratory.kazuuu.net/wp-content/uploads/2021/06/2021_06_09_10-2-768x472.png 768w, https://laboratory.kazuuu.net/wp-content/uploads/2021/06/2021_06_09_10-2.png 1250w" sizes="(max-width: 300px) 100vw, 300px" /></a></p>
<p>Google Colaboratory(Google Colab),Python3.7.10</p>
<h2><span id="toc3">■部分関数を作成する</span></h2>
<p>では、Functoolsモジュールを使用し部分関数を作成してみます。</p>
<h3><span id="toc4">■コード</span></h3>
<pre>from functools import partial

def addition_test(x,y):
  return x + y

add_1 = partial(addition_test,10)
add_2 = partial(addition_test,20)

print(add_1(10))
print(add_2(10))</pre>
<p>「from import」でFunctoolsモジュールのpartialを呼び出します。今回はdef文でaddition_testという関数を定義し、関数に渡す引数,パラメータをxとyに設定します。関数が呼びされた時に、実行される処理としては、returnでxとyを加算（足し算）した戻り値を返すものにします。</p>
<p>addition_testを定義後、add_1を定義し、partial()を用いて括弧内に第1の引数,パラメータとして、定義した呼び出す関数の名前を渡します。第2の引数,パラメータとして、呼び出す関数の引数,パラメータを修正しますので、今回は「10」として渡します。これで関数が呼び出され、部分関数が作成されます。</p>
<p>同じようにして、add_2も定義します。こちらは、partial()の第2の引数,パラメータを「20」として渡します。</p>
<p>最後に、add_1()とadd_2()を呼び出してみます。呼び出す際は括弧内に部分関数に渡すものを入れます。</p>
<h2><span id="toc5">■実行・検証</span></h2>
<p>このスクリプトを作成後、このスクリプトを実行してみます。</p>
<p><a href="https://laboratory.kazuuu.net/wp-content/uploads/2021/12/スクリーンショット-2021-12-05-081956-1.png"><img loading="lazy" decoding="async" class="alignnone size-medium wp-image-11155" src="https://laboratory.kazuuu.net/wp-content/uploads/2021/12/スクリーンショット-2021-12-05-081956-1-300x164.png" alt="" width="300" height="164" srcset="https://laboratory.kazuuu.net/wp-content/uploads/2021/12/スクリーンショット-2021-12-05-081956-1-300x164.png 300w, https://laboratory.kazuuu.net/wp-content/uploads/2021/12/スクリーンショット-2021-12-05-081956-1-1024x560.png 1024w, https://laboratory.kazuuu.net/wp-content/uploads/2021/12/スクリーンショット-2021-12-05-081956-1-768x420.png 768w, https://laboratory.kazuuu.net/wp-content/uploads/2021/12/スクリーンショット-2021-12-05-081956-1.png 1250w" sizes="(max-width: 300px) 100vw, 300px" /></a></p>
<p>実行してみると、Functoolsモジュールのpartial()を用いたことで、部分関数が作成され、作成した部分関数の処理が実行。実行された結果（戻り値）をprint()関数で出力させることができました。</p>
<p>なお、add_1()を呼び出してみると、xは10に置き換えられ、yは10に置き換えられ、”左から”置き換えられていることが確認できました。</p>
<p>今回の部分関数の作成したことで、引数,パラメータとして渡した数値に「10」を加算したケースや「20」を加算したケースなど、数多くの関数を定義する場合が必要な場合に、部分関数を用いると、同じコードを書き直す作業が減るということがわかりました。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://laboratory.kazuuu.net/create-a-partial-function-using-pythons-functools-module/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
