【Python(初学者向け)】クラス class の作り方を解説

Python

(最終更新月:2021年7月)

「Pythonでクラスの作り方を知りたい!」

「クラスってどうやって書けばいいの!?」

という方へ向けた記事、

Python クラスの作り方

を解説します

Pythonについてもっと詳しく知りたい!」という方はこちらのページもご覧ください!

Python入門 学習のメリットから将来性までを徹底解説|実例付
Pythonのメリット、デメリットを知りたいですか?当記事では「Pythonをこれから学びたい!」「そもそもプログラミングが初めて」という方に向けて、Pythonを学習するメリット・デメリットはもちろん、どんなことができ、どうやって学習するのか?というところまで全て解説しています。

さいしょに

当記事では作り方の説明をするために、プロフィール(Profile)というクラスを作成していきます

Profileクラスの特徴として、

  1. 姓、名、出身地を受け取る
  2. フルネームを生成する関数を内蔵
  3. 自己紹介文を返す関数を内蔵

と、3つの機能をつけていくこととします

サンプルコード

当記事を通じて、最後には↓のコードが丸わかりできるよう解説をしていきます!

class Profile():
    def __init__(self, last_name, first_name, birthplace):
        self.last_name = last_name
        self.first_name = first_name
        self.birthplace = birthplace

    def get_fullname(self):
        return f"{self.last_name} {self.first_name}"

    def introduce_myself(self):
        sentence = f"""
            こんにちは。私の名前は{self.last_name} {self.first_name}と申します。
            {self.birthplace}出身で、プログラミングが大好きです!
        """
        return sentence

クラスの構成

一番簡易的なクラスを書くと↓の通りになります

class Profile():
    pass

class クラス名():

で始めます

2行目からは、インデント(スペース4つ、もしくはタブ)を忘れずに

インデントは関数の時と一緒!

ただこのままですと、インスタンス化しても姓、名、出身地に該当するプロパティが存在しません

instance = Profile()

instance.last_name, instance.first_name, instance.birthplaceなどとした時に値が出てくるように引数の設定が必要です

上記で「pass」と記述した箇所にdefから始まる関数を定義していきます

まずは関数の書き方での注意点があるのでそこから始めましょう

関数を定義する際の注意点

先程のProfileクラスに関数を書く時は下記の点に注意します

class Profile():
    def 関数名(self):
        関数の処理
注意すること
  • インデントを忘れないこと
  • 関数名()内に「self」を入れること

「self」に例外はありません

「必ず入れる!」と覚えておきましょう!

selfを必ず入れることを頭に入れて、早速引数を受け取る関数を定義しましょう

引数を設定する関数を定義しよう

Pythonのクラスでは、関数を自由に作成することが可能です

ただし、引数を受け取る場合などはすでに用意されているメソッドを使い設定します

引数を受け取る、__init__関数を定義しよう!

__init__のinitの前後は、

_(アンダースコア)を2つずつです!

【コード例】

class Profile():
    def __init__(self, last_name, first_name, birthplace):
        self.last_name = last_name
        self.first_name = first_name
        self.birthplace = birthplace

__init__()内に引数を設定する

__init__関数の( )内に受け取りたい引数の設定をします

「self」は必ず必要ですので、最初に入れることを忘れないようにしましょう

last_name, first_name, birthplaceという引数も__init__関数内では自由に参照ができますが、インスタンス化した後や、別の関数から見ることができません

クラスプロパティを追加しましょう

クラスに独自のプロパティを追加する

self.プロパティ名 = 引数

として、外部から参照できるように設定します

self.last_name = last_name
self.first_name = first_name
self.birthplace = birthplace

インスタンス化で途中経過をチェック

インスタンスを作り、値を見てみましょう

引数への値の渡し方は、関数と同じやり方で構いません

>>> instance = Profile(last_name="坂本", first_name="Yu馬", birthplace="高知")

>>> instance.last_name
坂本
>>> instance.first_name
Yu馬
>>> instance.birthplace
高知

全てプロパティとして設定が完了してますね!

次はその他の関数を定義していきましょう

関数の定義(__init__で設定したプロパティの使用)

class Profile():
    def __init__(self, last_name, first_name, birthplace):
        self.last_name = last_name
        self.first_name = first_name
        self.birthplace = birthplace

    def get_fullname(self):
        return f"{self.last_name} {self.first_name}"

    def introduce_myself(self):
        sentence = f"""
            こんにちは。私の名前は{self.last_name} {self.first_name}と申します。
            {self.birthplace}出身で、プログラミングが大好きです!
        """
        return sentence

「関数についてよくわからない!」という方はこちらをご覧ください

気を付ける点は、__init__で設定したプロパティを受け取る場合、

self.プロパティ名

とし、「self」を忘れないこと!

そして、関数の最後に「return」を使い、文字列を返す役割をしています

>>> instance = Profile(last_name="坂本", first_name="Yu馬", birthplace="高知")

>>> instance.get_fullname()
坂本 Yu馬

>>> instance.introduce_myself()
こんにちは。私の名前は坂本 Yu馬と申します。
高知出身で、プログラミングが大好きです!

以上、Pythonクラスの作り方の解説でした!

当ブログは、「プログラミング初心者が一からWebアプリを作り、ネットで公開するまで」を解説しているサイトです。

日報アプリを一から開発し、ウェブに公開するまではこちらにまとめています

また、公開したウェブアプリはこちら(https://nippo.itc-app.site)でご覧いただけます(公開後もアップデート中)

 

その他、各分野別に

  1. Pythonについて
  2. HTML・CSSについて
  3. Djangoフレームワークについて
  4. Webサーバーについて
  5. 実際に公開をする方法

を記載したページも用意しています

 

ご自身の目的に合わせて、お好きな箇所からご覧ください

404 NOT FOUND | ITCブログ
今の自分にチャレンジする


タイトルとURLをコピーしました