NLP

学習したことを記録しています

Python3でのプログラム

自分が学習したことをメモとしてブログに残していこうと思います。

目次

環境

Ubuntu 16.0.4
python 3.6

class


C言語を習っていたので関数やif文などは飛ばし、pythonならではであるclassの学習から行います。

Pythonオブジェクト指向プログラミングをサポートしている言語です。

そのためにはクラスを定義、作成することが必要です。

オブジェクト指向についてはこちらのブログがとても分かりやすかったので載せておきます。

クラス、インスタンス、メゾットなどの専門用語の説明も書いてあります。 tdak.hateblo.jp

まずは、どのようなプログラムになるのか見ていきましょう。

class Man:
    def __init__(self,name):
        self.name = name
        print("Initialized!")

    def hello(self):
            print("Hello "+self.name +"!")

    def goodbye(self):
        print("Good-bye "+self.name +"!")

m = Man("David")
m.hello()
m.goodbye()

上から見ていくとまずは Pythonではクラスの定義にclass文を使用します。class文を使った定義の仕方は以下のようになります。

class クラス名:

その下に一段落インデントを入れてクラスの役割つまりメゾットやコンストラクタを定義していきます。

メゾット

class クラス名:
    def メソッド名(self):
        #メソッドの定義

コンストラクタを定義するには「init」という名前のメソッドを作成します。

コンストラクタ

class クラス名:
    def __init__(self, 引数1, 引数2, ….):
        #コンストラクタの定義

コンスタンスの定義文には

self.name = name

のようにクラスが持つ「name」変数に引数を格納します。

そしてこのクラスのインスタンス生成やメゾットの呼び出し方は下記のように行います。

m = Man("David")
m.hello()
m.goodbye()

ここではDavidがnameの変数に渡され、インスタンスを生成します。

そしてメゾットを呼び出すにはインスタンス.メソッド名()とすることでメゾットが実行されます。

このプログラムの実行例はこのようになります。

Initialized!
Hello David!
Good-bye David!