- 2018-8-27
- pythonプログラミング, 総論
- python, コンストラクタとは
- 【Python入門】コンストラクタとは?例題を挙げてわかりやすく解説 はコメントを受け付けていません
この記事ではコンストラクタについて解説していきます。
ただ、コンストラクタについて理解するためには
オブジェクト指向とかメソッドについての理解が必須です。
もしオブジェクト指向やメソッドについて
知りたい方はこちらの記事を先にご覧ください。
⇒【Python入門】オブジェクト指向とは?例題を挙げながら解説
⇒【Python入門】メソッドとは?わかりやすく解説します
それでは本題に入っていきましょう。
【Python入門】コンストラクタとは?
メソッドはクラスの中に存在します。
#例題1 class Pet: #ここはクラス def tiwawa(self): # ここはメソッド print('チワワだワン!') x = Pet() # xはクラスからできたインスタンス x.tiwawa()
例題1でいうところの
class Pet: #ここはクラス def tiwawa(self): # ここはメソッド
です。
class Pet:
でクラスを宣言し、
def tiwawa(self):
で、メソッドを導入しています。
こんな感じでクラスの中にメソッドがあるわけですよ。
それから
x = Pet()
でインスタンスを生成しています。
で、インスタンスが生成されるときに
自動的に呼び出されるメソッドをコンストラクタと呼ぶんです。
ちなみにコンストラクタはイニシャライザとも言われています。
【Python入門】コンストラクタの例題
言葉でコンストラクタとは何か説明しても
わかりにくいかもしれません。
なので例題をやりながら
コンストラクタについての理解を深めていきましょう。
例題2をご覧ください。
#例題2 class Pet: #ここはクラス def __init__(self, ti, da): # ここがコンストラクタ self.tiwawa = ti self.dachs = da def hatugen(self): print(self.tiwawa, self.dachs) x = Pet('チワワ', 'ダックスフンド') # ここでインスタンスを生成 x.hatugen()
まず、
class Pet: #ここはクラス def __init__(self, ti, da): # ここがコンストラクタ self.tiwawa = ti self.dachs = da def hatugen(self): print(self.tiwawa, self.dachs)
Petというクラスの中に
・__init__メソッド
・hatugenメソッド
の2つが実装されています。
これら2つのメソッドの中でも
__init__メソッドはコンストラクタに該当します。
それから
def __init__(self, ti, da): # ここがコンストラクタ self.tiwawa = ti self.dachs = da
上記のコンストラクタでは
インスタンス変数に受け取った引数を設定しています。
ちなみにインスタンス変数は『tiwawa』と『dachs』が
該当します。
こんな感じでコンストラクタにするためには
必ず__init__( )を用いないといけません。
__init__( )は特殊なメソッドなんです。
次に
def hatugen(self): print(self.tiwawa, self.dachs)
hatugenメソッドでは、selfを使って
tiwawaとdachsにアクセスしてprint文で
何らかの文字列や数を表示させようとしています。
それから
x = Pet('チワワ', 'ダックスフンド') # ここでインスタンスを生成 x.hatugen()
Petというクラスからインスタンスを生成するときに
引数として『チワワ』、『ダックスフンド』という文字列を
変数xに代入します。
こんな感じでコンストラクタを使うことで
インスタンスの生成時に文字列や数などの値を
xなどの変数に代入することができるようになるんです。
そのあとに、hatugenメソッドを呼び出し
print文によって『チワワ』と『ダックスフンド』
という文字列が表示されるようになります。
実行してみると
と表示されていますね。
【Python入門】コンストラクタでエラーが出るパターン
まず例題3をご覧ください。
#例題3 class Pet: #ここはクラス def __init__(self, ti, da): # ここがコンストラクタ self.tiwawa = ti self.dachs = da def hatugen(self): print(self.tiwawa, self.dachs) x = Pet() # ここでインスタンスを生成 x.hatugen()
例題3を実行するとエラーが出ます。
例題3と例題2の違いはここだけです。
例題3は
x = Pet() # ここでインスタンスを生成
で、例題2は
x = Pet('チワワ', 'ダックスフンド') # ここでインスタンスを生成
です。
違いがわかりましたか?
例題3ではインスタンス生成時に
tiとdaに対応する引数『チワワ』と『ダックスフンド』を
変数xに代入できていないからエラーが発生したんです。
こんな感じでコンストラクタで引数(tiとda)が設定されているのに
インスタンス生成時にtiとdaに対応する引数『チワワ』『ダックスフンド』を
変数xに渡さないとエラーが発生してしまいます。
以上でコンストラクタについての解説を終わります。
pythonを学ぶならこちらの動画講座がおすすめです
Python 3 入門 + 応用 +アメリカのシリコンバレー流コードスタイルを学び、実践的なアプリ開発の準備をする
かなり長い講座名ですね。
わかりにくそうな感じがします。ですが、pythonの基礎からしっかりとわかりやすく教えてくれます。
また、きれいなコードを書くための方法についても
教えてくれるので、周りが「どうやってそんなコードを書いてるの?」
とびっくりされるようになるかもしれません。それからWebアプリケーション開発の基本的なテクニックについても
教えてくれます。なので、pythonを使ってwebアプリケーションを作ってみようと
思っている方にもおすすめです。値段は時期によって違います。
詳しくはこちらをご覧ください。
みんなのAI講座 ゼロからPythonで学ぶ人工知能と機械学習
この講座ではまずpythonの基礎を学びます。
次に人工知能について学んでいきます。そして最終的にはpythonを使って文字認識や株価分析ができるような技術力が身につくようになっています。
単純に教科書的なpythonを学ぶのではなく
仕事でも使えるスキルを身につけたい方におすすめの講座です。なのに値段は恐ろしいほど安いです。
時期によって値段は変動するので
詳しくはこちらをご覧ください。
Pythonで機械学習:scikit-learnで学ぶ識別入門
この動画講座は広島大学准教授の先生が担当しています。
機械学習が専門の先生です。すごく深い知識が身につきます。
大学の先生の講義って難しそうってイメージがあるかもしれません。でもそんなことはありません。
すごくわかりやすいです。pythonで機械学習のスキルを身につけたい方におすすめです。
値段は時期によって違いますが、かなり、良心的な価格になっています。詳しくはこちらをご覧ください。