オリジナルの関数を作成し呼び出す。ということを前回の記事でまとめました。
しかし、以前の記事では、関数を呼び出すだけで必要なデータを渡して処理してもらいたい時に、どうしたら良いかわかりません。
今回は、関数に値を渡して、関数内部で処理を実行してもらうにはどうしたらよいか?を記載していきたいと思います。
また、補足として、ローカル変数についてもまとめたいと思います。
目次
そもそも引数と戻り値とは?
蛇足かもしれませんが、私はIT初任の時に、引数や戻り値の考え方が全く理解できませんでした。
そもそも引数とは?そもそも戻り値とは?という記事は多数見かけますが、佐々木真さんの【わわわ】が一番わかりやすかったので、一応掲載させてください。
ローカル変数とグローバル変数
以前、変数について簡単に記載いたしましたが、引数の話に入る前にローカル変数とグローバル変数についてまとめたいと思います。
ローカル変数
関数の中で定義された変数を、ローカル変数と言います。
特徴として、以下のようなことがあげられます。
- 関数の中の変数は、その関数の中でのみ有効
- ローカル変数は、関数を実行している時のみ参照が可能
ローカル変数は、外部からのアクセスができないことを意味しています。
外部からのアクセスをできなくすることにより、関数で定義された処理を、きちんと実行できるように担保されているのです。
しかし一方で、それでは決められたことしか実行できなくなってしまいます。関数には外部からアクセスする方法はないのでしょうか?
そういったときのために、引数や戻り値をが登場します!
グローバル変数
一方で、関数外部で宣言された変数は全てグローバル変数と呼ばれます。
- 関数の外部で宣言された変数
- どのような場合でも参照することができる
#例として、【cur】が関数の外で宣言されている。
#グローバル変数なので関数で利用できる。
conn = sqlite3.connect('TEST_for.sqlite3')
cur = conn.cursor()
#グローバル変数として宣言されたので、【cur】は関数の処理中で使用することができ参照可能。
def test_func():
for shirts in cur.execute("select * from clothes"):
print(shirts)
引数の指定方法
#(…)内に引数を指定する
def 関数名称(引数1, 引数2…):
関数内の処理
#呼び出す時に引数を指定して呼び出す
関数名称(引数1, 引数2…)
サンプルコード
少し、関数内部の処理の記載方法を変えてみます。
execute()は、()の中に実行するSQLと設定するパラメータを指定することができます。
execute(sql, data)に変更することにより、SQLは決まった形を宣言し、dataで可変部分の値を渡すように修正しました。
#引数にx,y,zを定義する。
def test_func(x,y,z):
#sqlというローカル変数を宣言する。
#新規レコードを追加するためのSQLを変数化しておく。
sql = 'insert into clothes (id, cloth, price) values (?,?,?)'
#SQLに対してどんな値を受け取るか?の変数を宣言する。
data = (x,y,z)
#グローバル変数【cur】を利用してSQLを実行する。
cur.execute(sql, data)
for shirts in cur.execute("select * from clothes"):
print(shirts)
#引数を指定して関数を呼び出し
#17500円のテストシャツを洋服一覧に追加する。
test_func(6,'test_shirt',17500)
【実行結果】
EOF
ここではPythonで引数の基本的な使い方をご紹介いたしました。
続いて、戻り値についてもまとめていきたいと思います。
本日も、一緒に学習を進めていただき、ありがとうございました!
では、また!
追伸:これからPythonを学ぶなら
これからPythonを学びたい!業務に活かせるように学習したい!という方ならば、まずはUdemyで学習を始めることをお勧めします。
Udemyでは、数多くの講師陣がITの知識やスキルアップのための解説動画を提供していて、現場でも役立つ知識が多数存在します。
特に、流行りもあるのだと思いますがPythonやAWSの講座は数が多く品質が高いものが多いです。
手前味噌ながら以下の記事で、主に初学者の方向けのお勧め講座のレビューをしていますので、ご参考にしていただけますと幸甚です。