はじめに
「class」は、Pythonを勉強する上で必ず押さえて欲しい内容になります。
classは試験や開発で必要になる知識です。概念が難しいのでしっかりと理解してください。
classとは
結論から言うと、オブジェクト(もの)の内容を定義しておくものです。別の言い方で「ひな形」です。
今回使用するのは、Userというオブジェクトの定義です。
中身は、「挨拶」と「年齢を表示」という単純なものです。
メソッドとは
classの中で処理をまとめているもの。関数になります。
インスタンス化とは
classに対してデータを格納すること。つまり、classを使用する為の準備。
実際のコード
以下のコードはclassの内容です。
例1. class_1.py
(userの情報を取得する。)
class User:
user_type = None
def __init__(self, name, age, address):
"""初期化をするメソッド"""
self.name = name
self.age = age
self.address = address
def age_view(self):
"""年齢を表示するメソッド"""
print(f'{self.name}さんの年齢は{self.age}です。')
def name_hello(self):
"""挨拶をするメソッド"""
print(f'{self.name}さんこんにちは!!')
以下のコードがクラスを使用するコードになります。
user.py
from class_1 import User
user1 = User("大谷", "30", "アメリカ") # インスタンス化
print(type(user1))
print(user1.name)
user1.age_view() # 年齢表示のメソッドを呼び出す。
user1.name_hello() # 挨拶メソッドを呼び出す。
実行した結果(例1)
<class 'class_1.User'>
大谷
大谷さんの年齢は30です。
大谷さんこんにちは!!
例2. class2.py
(数値を渡して処理を行うクラス)
class Calculator:
def __init__(self, number, number_1):
"""初期化メソッド"""
self.number = number
self.number_1 = number_1
def total(self):
"""numberの合計を求めるプログラム"""
sum_lst = [i for i in range(self.number + 1)]
ans = sum(sum_lst)
print(f'1から{self.number}を全て足した合計は-> {ans}')
def add(self):
return self.number + self.number_1
def even(self):
"""偶数を求めるプログラム"""
even_lst = [i for i in range(self.number) if i % 2 == 0]
return even_lst
実際に呼び出す為のプログラムcaluculator.py
from class_2 import Calculator
total = Calculator(10, 100)
total.total()
print(total.add()) # 合計を求める
print(*total.even()) # 偶数を求める
実行した結果(例2)
1から10を全て足した合計は-> 55
110
0 2 4 6 8