2
2

More than 3 years have passed since last update.

Pythonのクラスを理解する【備忘録】

Last updated at Posted at 2021-03-17

Pythonのクラスを学習したんで、その備忘録をつけていく

クラスの書き順

  1. class クラス名: でクラスを定義する
  2. def __init__(self,引数) で初期設定?設計書?を定義する
  3. self.属性名 で属性(プロパティ)を与えていく

クラスの書き方例

class Persson00:
    def __init__(self,name,age):
        self.name = name
        self.age = age

これで実行すると、クラスが定義される。
まだ定義しただけなので、特に何も起きない。
なので、定義したクラスを使える処理をしていく。

インスタンスの作り方

  1. インスタンス名 = クラス名(引数) でインスタンスを定義。
  2. インスタンス名.属性名 でインスタンスを実行できる。

インスタンスの実行例-その1-

#上で書いたクラスを使ってます

mittsu00 = Persson00("みっつ",29) #インスタンスを定義
mittsu00.name #インスタンスを実行
#実行結果:みっつ

mittsu00.age #インスタンスを実行
#実行結果:29

Persson00 で定義した属性を使って mittsu00 っていうインスタンスを作り上げた、ってことか。

そしてそのインスタンスを使って、アレコレやっていく、みたいな感じなんですかね。

インスタンスの実行例-その2-

yottus00 = Persson00("よっつ",35) #インスタンスを定義
yottsu00.name #インスタンスを実行
#実行結果:よっつ

yottsu00.age #インスタンスを実行
#実行結果:35

同じ Persson00 クラスを使って、別のインスタンスを作ることもできる。

なるほど、、、。

そうやって頻繁に使うであろう属性ってのを、予めクラスの中で定義しておいて、それを使い回す、
みたいなイメージかな。

クラスの中にメソッドを定義する

  1. class クラス名: でクラスを定義する。
  2. def __init__(self,引数) で初期設定を定義する
  3. def メソッド名(self,引数名) でメソッドを定義する
  4. 3で作ったメソッドの中身を書いていく

メソッドの書き方例

class Persson01:
    def __init__(self,name,age):#この辺はさっきと同じ
        self.name = name
        self.age = age

    def main(self,name):#ここからがメソッドの定義
        print ("私の名前は、"+name+"と申します")

ここまでで、クラスとメソッドの定義完了。
後は上記と同様に、インスタンスを作り、メソッドを実行していく。

メソッドの実行例-その1-

mittsu01 = Persson01("みっつ",29)
mittsu01.main("みっつ")

#実行結果:私の名前は、みっつと申します

Persson01 を元にした mittsu01 というインスタンスを作り、クラス内で定義した main メソッドを実行する。

そして引数を渡して実行することで、 main メソッドの処理である、 print が走る、
ってわけか。

selfを使ったメソッドの定義

class Persson01:
    def __init__(self,name,age):
        self.name = name
        self.age = age

    def main(self,name):
        print ("私の名前は、"+name+"と申します")
        print ("私の名前は、"+self.name+"と申します")#ここでselfを使ってる

mittsu01 = Persson01("みっつ(これはインスタンス名)",29)

mittsu01.main("みっつ(こっちは引数名)")#インスタンスを実行

#実行結果:私の名前は、みっつ(こっちは引数名)と申します
#実行結果:私の名前は、みっつ(これはインスタンス名)と申します

メソッドの処理の中に、 self.○○ をつけることで、インスタンスで定義した値を設定することが出来る。

なるほど、これは便利かも。

所感

Pythonってか、オブジェクト指向って呼ばれる言語は、クラスを使えてなんぼ、みたいなところがありますね...。
なので、この辺は頑張って理解していきます。

PySideでGUIを作る場合、
- ウィンドのタイトル名とか、
- 実行ボタンを予め持たせておく、とか

まぁそんな感じで、ひな形みたいなのを作っておくと、便利なのかなぁ、、、。
なんて思いながらやってました。

この後はクラスの継承とかも覚えて、より実践的な書き方をマスターしていきたいですね。

手書きのメモ

CE1D6F3E-D0E8-439C-B331-028ACCA5FDF5.jpg

やっぱりプログラムとは言え、なんやかんや、アナログでメモった方がいいな。
頭の中でソースが書けてないと、タイピングも出来ないしね。

まぁ、実行出来ないんでミスってても気づかないんですけど(笑)

2
2
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
2
2