PyScriptでオブジェクト指向プログラミングを学習する: Python Object Oriented Programming【5】
この記事ではPythonでオブジェクト指向プログラミングを学習する方法を解説しています。
オブジェクト指向プログラミングは、次の13のシリーズから構成されています。
第5回目では、Employeeクラスのオブジェクトを作成して関数「get_fullname()」から戻り値として「class」のオブジェクトを返す方法を学習します。
この記事ではMicrosoftのVisual Studio Codeを使用していますが、Jupyter NotebookなどのツールでもOKです。
ここで解説しているPythonのコードは「
GO LIVE DEMO」から直接編集しながら会話形式で学習することができます。
説明文の左側に図の画像が表示されていますが縮小されています。
画像を拡大するにはマウスを画像上に移動してクリックします。
画像が拡大表示されます。拡大された画像を閉じるには右上の[X]をクリックします。
画像の任意の場所をクリックして閉じることもできます。
Pythonの関数「get_fullname()」から戻り値としてEmployeeクラスのオブジェクトを返す
-
関数「get_fullname()」からEmployeeクラスのオブジェクトを戻り値として返す
Visual Studio Code(VSC)を起動したら新規ファイルを作成して行1-15を入力(コピペ)します。
行2-3では「Employee」クラスを定義しています。
行3の「...」の3個のドットは「Ellipsis」と呼ばれる特別のオブジェクトで空のクラスを作成するときに利用します。
「Ellipsis」の代わりに「pass」を記述することもできます。
行5-9では関数「get_fullname()」を定義しています。
行6ではEmployeeクラスの空のオブジェクトを生成しています。
行7ではPythonのinput()ステートメントでコンソールから名前を入力させてEmployeeクラスの「first」属性に格納しています。
行8ではPythonのinput()ステートメントでコンソールから姓名を入力させてEmployeeクラスの「last」属性に格納しています。
行9では戻り値としてEmployeeクラスのオブジェクトを返しています。
行11では関数「get_fullname()」を呼び出して戻り値を変数に格納しています。
行12では戻り値が格納されている変数のデータ型を表示しています。
行15ではEmployeeクラスの属性(first+last)を表示しています。
# Python Object-Oriented Programming [5].py
class Employee:
...
def get_fullname() -> Employee:
employee = Employee()
employee.first = input('First name: ')
employee.last = input('Last name: ')
return employee # return class
employee = get_fullname() # 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」の行14-15のコメントを外してPythonのコードを実行しています。
input()ステートメントに対して「Akio」と「Yamada」を入力して[OK]をクリックしています。
行14-15ではEmpolyeeクラスの属性「last」の値を「Kasai」に書き換えています。
行16のprint()ステートメントでは「Full Name」として「Akio Kasai」が表示されています。
このようにEmployeeクラスの属性「last」は変更することができます。