LoginSignup
1
1

【Python】class構文解説!!

Last updated at Posted at 2024-03-31

はじめに

「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
1
1
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1