Biz-IT Blog

Business x IT --> Upgrade!

第7章 7.1 オブジェクトとクラス

この章では、オブジェクトについて解説します。
 

オブジェクトとは

オブジェクトとは、数値、文字、変数、戻り値を返す関数など、データや関数がひとかたまりになったもの=「実体」を指します。
オブジェクトの実体が整数値ならばint型、文字列ならばstr型、リストならばlist型というように、オブジェクトには「型」があります。
それぞれの型に対応した関数が予め備わっており、その関数をメソッドと呼びます。

オブジェクトに対するメソッド

あるオブジェクトに対して、その型に対応した関数(メソッド)を呼び出して処理を行う場合、以下の様に記述します。

<メソッド呼び出しの表記方法>

オブジェクト.メソッド名(引数・・・)

<プログラム例>

# 変数familyはlist型
family = ['父','母','長男','次男']
print(family)
# list形のメソッドであるappendを実行
family.append('犬')
print(family)
# 文字列型のメソッドであるformatを実行
print('追加されたのは{}です'.format(family[4]))

<実行結果>
['父', '母', '長男', '次男']
['父', '母', '長男', '次男', '犬']
追加されたのは犬です

※5行目、8行目がメソッドの呼び出しです。

これまで、「第3章 3.2 ①リスト リストの操作」で説明した
リスト.append( リストに追加したい値 )
リスト.remove( リストから削除したい値 )
「第6章 6.2 関数の応用テクニック」で説明した
'文字列~{}~'.format( 引数 )
などは、実はオブジェクトに対するメソッドの呼び出し処理だったのです。

メソッドの種類

Pythonに標準で備わっている「型」と「メソッド」については、以下のPython公式サイトのドキュメントに説明があります。
組み込み型 — Python 3.9.3 ドキュメント

ここでは文字列型(str型)オブジェクトの代表的なメソッドを紹介します。

メソッド名 機能
capitalize() 先頭文字だけ大文字に、残りを小文字にする
lower() すべてを小文字にする
upper() すべてを大文字にする
title() 単語の先頭だけを大文字に、残りを小文字にする
strip() 文字列の前後の空白を取り除く
split(○) 文字列○で区切り、各要素をリストで返す
replace(○,◇) 文字列中の○部分を◇に置き換えた結果を返す
count(○) 文字列○が登場する回数を返す

<プログラム例>

x = input('ペットの種類と名前をカンマで区切って入力=')
[pet, name] = x.split(',')
name = name.upper()
print('{}の名前は{}ですね!'.format(pet,name))

<実行結果>
ペットの種類と名前をカンマで区切って入力=犬,jon
犬の名前はJONですね!

クラスとは

オブジェクトには型があり、その型に対応したメソッドがあることを説明しましたが、これらが規定通りに動作するための設計図のようなものをクラスと呼びます。
Pythonでは予め標準でPython本体に備わっているクラスもあれば、自分でクラスを定義することもできます。

基本的な計算をプログラムで自動処理させる場合や、Webスクレイピングなどで代表されるデータ収集、あるいは、メールを自動送信させるなど、単純な自動化処理ではクラスを定義しなくても問題なくプログラムを組むことができます。
しかし、ゲームを製作する場合や、Webアプリを作る場合など、複雑なプログラムを組む場合はクラスを定義することが必要になります。
このサイトはPython入門者向けサイトですので、ここではクラス定義のサンプルのみを紹介し、雰囲気を掴んでもらうことに留めます。

<プログラム例>

# オリジナルのクラスClassNameを定義
class ClassName:
    def __init__(self,name):
        self.name = name
     def my_method(self):
        print("クラスの名前は「" + self.name + "」です。" )

# ClassNameで定義したオブジェクトを生成
x = ClassName('クラス1')
# ClassNameで定義したメソッドを実行
x.my_method()

<実行結果>
クラスの名前は「クラス1」です。
 
  
次のページへ
Pythonトップへ戻る