0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

[光-Hikari-のPython]09章-01 クラス(オブジェクトの基礎)

Last updated at Posted at 2020-07-02

#[Python]09章-01 オブジェクトの基礎
今まで、文字列や数値、データ構造の分野ではリストやタプルなどに触れました。データ構造の個所で触れましたが、これらはオブジェクトと言いました。

さて、このオブジェクトとは何でしょう。まずはオブジェクトについて説明して少し掘り下げていきたいと思います。

##オブジェクトとは
まずはPython Consoleにて以下のコードを入力して確認してみましょう。

.py
>>> S = 'hello'
>>> type(S)
<class 'str'>

Sという変数に'hello'という文字列を代入しています。さて、次にtype()関数により、<class 'str'>が出力されています。
これは、S変数がが現在str型のオブジェクト
であることを意味しています。

では、strオブジェクトの詳細を見てみましょう。以下のURLから閲覧できます。
https://docs.python.org/ja/3/library/stdtypes.html#text-sequence-type-str

マニュアルを見てみると、str型はテキストシーケンス型と書かれています。要するに文字列型のオブジェクトということです。

さて、マニュアルを少し下に送ると、「文字列メソッド」というものが出てきます。
例えば、一番最初にあるstr.capitalize()メソッドを実行してみましょう。
なお、このマニュアルにある、strはstr型のオブジェクトを表すので、今回実際に入力するときにはSという変数名となります。

.py
>>> S
'hello'
>>> S.capitalize()
'Hello'

先頭のみ、大文字になったことが確認できたと思います。詳細はstr.capitalize()メソッドマニュアルを見てください。

また、ほかのメソッドも見てみましょう。str.replace()メソッドを実行してみましょう。

.py
>>> S.replace('l', 'L')
'heLLo'

replaceメソッドにより、文字列中の文字を変更ができます。詳細はマニュアルを見てみましょう。

他にもいろいろなメソッドをマニュアルを見ながらやってみましょう。今後、マニュアルに書いてある内容は一部を除き、割愛していきたいと思います。

さて、このstr型だけではないですが、オブジェクトの型にはほかにもあります。以下のコマンドでいろいろな方を確認してみましょう。

以下はint型オブジェクトとなります。

.py
>>> num1 = 100
>>> type(num1)
<class 'int'>

以下はfloat型オブジェクトとなります。

.py
>>> num2 = 10.5
>>> type(num2)
<class 'float'>

以下はlist型オブジェクトとなります。

.py
>>> ls = ['Japan', 'America', 'China']
>>> type(ls)
<class 'list'>

以下はtuple(タプル)型オブジェクトとなります。

.py
>>> tp = (10, 20, 30)
>>> type(tp)
<class 'tuple'>

以下はdict(ディクショナリ)型オブジェクトとなります。

.py
>>> dc = {'jp':'Japan','us':'America', 'ch':'Chine'}
>>> type(dc)
<class 'dict'>

これらそれぞれの型のオブジェクトにはメソッドを持ちます。実際に調べてみましょう。ほとんどは以下のURLに記載してあります。
https://docs.python.org/ja/3/library/stdtypes.html

<重要>
実は、あるデータとその振る舞い(メソッド)が一塊になっているものを一般にオブジェクトと言います。
例えば、

.py
>>> ls = [1, 3, 3, 2, 1, 2, 2, 1, 1, 2]
>>> ls.count(2)
4

とすれば、lsはリスト型のオブジェクトであり、そのオブジェクトは「1, 3, 3, 2, 1, 2, 2, 1, 1, 2」というデータを持ち、count()というメソッドも持ちます

また、関数もオブジェクト(functionオブジェクト)と言えます。

.py
def calc_func(x):
    print('関数内で実行します')
    f = (x ** 2) + (3 * x) + 4
    ##計算結果fを返す
    return f

print(type(calc_func))

【実行結果】
<class 'function'>

##オリジナルのオブジェクト
先ほどはint型やstr型、そしてlist型などのオブジェクトがありましたが、実はオブジェクトは自分で作成することができます。
これについては次回触れていきたいと思います。

##最後に
このオブジェクトの概念は非常に取り扱いの難しいものなので、最初は壁を感じるかと思います。ポイントは先ほどのURLにもあった、いろいろなマニュアルを読んでみることです。
最初は意味が分からなくても、読んでいくことで意味が分かってくるようになりますので、ポイントはマニュアルを見ながら実際に実行してみることです。

###【目次リンク】へ戻る

0
1
0

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?