前提など
対象:
・Python初学者が対象
・過去記事 もチラ見してください。
開発環境: Windows、Visual Studio Code、Python3系
前々回構築した開発環境で学習を進めます。
※Windows10での使用を前提とするが、他OSでも大きく変わらないはずです。
前提: 初学者は公式ドキュメントを元に学習すべきであるが、
社内勉強会を前提としているため、基本を掻い摘んで駆け足で説明します。
★Python公式ドキュメントへのLINK★
今回のテーマ
関数、クラス、メソッド の使い方を勉強します。※今回もPythonというかプログラムの基本のおさらいです。
言い訳
クラスについて説明するには、まずオブジェクト指向の説明が必要なのですが
オブジェクト指向を正しく説明するとそ、れだけで勉強会を数回やらないと理解出来ないのでざっくり以下。
クラスとは学校のクラスと同じです。
同じ様な子が集まってるくらいでお茶を濁して進めますよ。
クラスとは
クラスとは、要素(属性)や 振る舞い(操作)を まとまりとして定義したものです。様々なプログラミング言語で使われています。
ひとまず現段階では、要素は変数、振る舞いは関数と思っておいてください。
メソッドとは
前回記事にて「関数」についてサラッとやりましたが、メソッドとはホボ関数と同じと思って良いです。
メソッドと関数では何が違うのか?
メソッドとは
・クラス内で定義された関数
・オブジェクトの属性として参照される関数
前回紹介した list もメソッドに使えます以下を試してください。
コード1:
n_list = ["a","b"]
print( n_list )
コード2:
n_list.append("c")
print( n_list )
解説
コード1 の1行目は、 listの設定を行っています。
コード2 の1行目は、 appendで listに「c」を追加しています。
関数を実装してみよう
まずは関数を実装してみよう。 test_func.py というファイル名で実装し、実行して確認してください。def test_func():
print('call test_func')
test_func()
解説
1行目 defが 関数の宣言
1行目~2行目 この2行が関数
末尾行の「test_func()」は関数を呼び出しています。
関数に引数をつけてみよう
先ほどのソースコードを以下のように修正し、実行して確認してください。
def test_func(str1, str2):
print("引数は" + str1 + "と" + str2)
test_func("test", "func")
解説
1行目 のカッコ内の「str1,str2」が引数です。
末尾行の関数呼出し時に、「test」 と「func"」を引数として渡しています。
クラスとメソッドを実装してみよう
test_class.py というファイル名で実装し、実行して確認してください。#クラスの定義
class TestClass:
# メソッドの定義
def test_method(str1, str2):
print("引数は" + str1 + "と" + str2)
#### ここからメソッドを呼び出す ###
TestClass.test_method("くらす","めそっど")
解説
2行目 class・・・ が クラスの宣言
4行目 メソッドも def で宣言します。
4行目~5行目 この2行がメソッド
末尾行の「TestClass.test_method("くらす","めそっど")」はメソッドを呼び出しています。
メソッドの呼び出し時は クラス名.メソッド名 で呼び出します。
以下修正中。
他ファイルからクラスのメソッドを呼び出す場合