PyScriptでオブジェクト指向プログラミングを学習する: Python Object Oriented Programming【6】
この記事ではPythonでオブジェクト指向プログラミングを学習する方法を解説しています。
オブジェクト指向プログラミングは、次の13のシリーズから構成されています。
第6回目では、Employeeクラスのオブジェクトを作成して 関数「get_employee()」から戻り値としてクラスのオブジェクトを返す方法を学習します。
さらにEmployeeクラスに「__init__()」メソッドを追加する方法についても解説します。
この記事ではMicrosoftのVisual Studio Codeを使用していますが、Jupyter NotebookなどのツールでもOKです。
ここで解説しているPythonのコードは「
GO LIVE DEMO」から直接編集しながら会話形式で学習することができます。
説明文の左側に図の画像が表示されていますが縮小されています。
画像を拡大するにはマウスを画像上に移動してクリックします。
画像が拡大表示されます。拡大された画像を閉じるには右上の[X]をクリックします。
画像の任意の場所をクリックして閉じることもできます。
新規クラスEmployeeを作成して「__init__()」メソッドを追加する
-
Employeeクラスに「__init__()」メソッドを追加する
Visual Studio Code(VSC)を起動したら新規ファイルを作成して行1-16を入力(コピペ)します。
行2-5では「Employee」クラスを定義しています。
行3-5では「__init__」メソッドを追加しています。
引数「self」は自分自身を意味します。つまり新規に生成されたEmployeeオブジェクトを指します。
引数「first」には従業員の名前を指定します。
引数「last」には従業員の姓名を指定します。
このメソッドはクラスのオブジェクトを生成したときに自動的に実行されます。
行7-10では関数「get_employee()」を定義しています。
行8-9ではPythonのinput()ステートメントで従業員の名前と姓名をコンソールから入力させて変数に格納しています。
行10ではEmployeeクラスのオブジェクトを生成して戻り値として返しています。
Employee()クラスの引数には「first」と「last」を指定します。
行12では関数「get_employee()」を呼び出して戻り値を変数に格納しています。
行13では戻り値が格納されている変数のデータ型を表示しています。
行16ではEmployeeクラスの属性(first+last)を表示しています。
# Python Object-Oriented Programming [6].py
class Employee:
def __init__(self, first, last):
self.first = first
self.last = last
def get_employee() -> Employee:
first = input('First name: ')
last = input('Last name: ')
return Employee(first, last) # return class
employee = get_employee() # get class
print(type(employee))
# if employee.first == 'Akio':
# employee.last = 'Kasai'
print(f"Full Name: {employee.first} {employee.last}")
図1は実行結果です。
ここでは「First name」に「Akio」、「Last name」に「Kasai」を入力しています。
氏名(Full Name)として「Akio Kasai」が表示されています。
ここでは戻り値のデータ型(class)も表示しています。
-
Live DEMO
【Live DEMO】からPythonのコードを実行するには緑色の[▶]をクリックします。
PyScriptの場合、input()ステートメントを実行するとポップアップが表示されるのでテキストボックスに入力します。
なお「input('Enter first name: ')」のように記述してもメッセージは表示されないのでここでは省力しています。
[▶]をクリックすると「First name」のポップアップが表示されるので「名前」を入力して[OK}をクリックします。
すると「Last name」のポップアップが表示されるので「姓名」を入力して[OK]をクリックします。
Pythonのコードは編集してから実行することもできます。
図2-1は緑色の[▶]をクリックしてPythonのコードを実行した画面です。
ここではinput()ステートメントに対して「Akio」と「Kasai」を入力して[OK]をクリックしています。
「Full Name」として「Akio Kasai」が表示されています。
図2-2はでは「Live DEMO」の行15-16のコメントを外してPythonのコードを実行しています。
input()ステートメントに対して「Akio」と「Tanaka」を入力して[OK]をクリックしています。
行15-16ではEmpolyeeクラスの属性「last」の値を「Kasai」に書き換えています。
行17のprint()ステートメントでは「Full Name」として「Akio Kasai」が表示されています。
このようにEmployeeクラスの属性「last」は変更することができます。