【Python】自作した関数に引数を渡して呼び出す(補足@ローカル変数)

オリジナルの関数を作成し呼び出す。ということを前回の記事でまとめました。

しかし、以前の記事では、関数を呼び出すだけで必要なデータを渡して処理してもらいたい時に、どうしたら良いかわかりません。

禄太
例えば、指定したデータを関数に渡してあげると、データベースに対して新規のデータが追加されると、便利ですよね?!
禄太
少し、書き方を変えてみましたが、今のままでは同じシャツしかデータベースに登録をすることができません。

今回は、関数に値を渡して、関数内部で処理を実行してもらうにはどうしたらよいか?を記載していきたいと思います。

また、補足として、ローカル変数についてもまとめたいと思います。

【Python】関数を自作して呼び出す方法(def)

2022年10月26日

目次

そもそも引数と戻り値とは?

蛇足かもしれませんが、私はIT初任の時に、引数や戻り値の考え方が全く理解できませんでした。

そもそも引数とは?そもそも戻り値とは?という記事は多数見かけますが、佐々木真さんの【わわわ】が一番わかりやすかったので、一応掲載させてください。

ローカル変数とグローバル変数

以前、変数について簡単に記載いたしましたが、引数の話に入る前にローカル変数グローバル変数についてまとめたいと思います。

【Python】変数を定義する時、他の開発言語と違うこと・注意すること

2022年10月12日

ローカル変数

関数の中で定義された変数を、ローカル変数と言います。

特徴として、以下のようなことがあげられます。

ローカル変数の特徴
  • 関数の中の変数は、その関数の中でのみ有効
  • ローカル変数は、関数を実行している時のみ参照が可能

ローカル変数は、外部からのアクセスができないことを意味しています。

外部からのアクセスをできなくすることにより、関数で定義された処理を、きちんと実行できるように担保されているのです。

しかし一方で、それでは決められたことしか実行できなくなってしまいます。関数には外部からアクセスする方法はないのでしょうか?

そういったときのために、引数戻り値をが登場します!

グローバル変数

一方で、関数外部で宣言された変数は全てグローバル変数と呼ばれます。

グローバル変数の特徴
  • 関数の外部で宣言された変数
  • どのような場合でも参照することができる
#例として、【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の知識やスキルアップのための解説動画を提供していて、現場でも役立つ知識が多数存在します。

禄太
私も、Udemyで学習しながらITのスキルを身につけ、仕事に役立てています。

特に、流行りもあるのだと思いますがPythonやAWSの講座は数が多く品質が高いものが多いです。

手前味噌ながら以下の記事で、主に初学者の方向けのお勧め講座のレビューをしていますので、ご参考にしていただけますと幸甚です。

脱初学者!!Udemy講座で徹底的に基礎を学んだので各講座のレビュー

2023年11月25日