くしだんご

ひとまず気楽に自分らしく

Python備忘録的に…@classmethod

記憶を呼び起こしながら、ちょっとずつ整理しよ(/・ω・)/
そういえば、なんでわたし、くしだんごって名前にしたんだっけ。。

※※基本的に【詳細!Python 3 入門ノート】の本の内容です。※※
ぜひ、一つの本を手に取ってみて、勉強しましょ(^ω^)

今回は、@classmethodってあったなあって。

1. クラスメソッドって何?

ざっくりいうと、クラスにくっついている関数。
基本的に複数のインスタンスの中で、共通で使用したい初期値・変数・関数を定義するときに便利なもの。

メソッドに@classmethodとつけると使用できます。

f:id:Hakushidango:20210228222129p:plain

f:id:Hakushidango:20210228222526p:plain

f:id:Hakushidango:20210228222640p:plain

といった具合に使えます。
同時に出てきています、インスタンスメソッドは定義したインスタンスそれぞれで独立して呼び出して使うことができます。

 

2. なんでclassmethodを使用するの?関数を使わないのかなって

・引数としてクラスを取得することができる
・クラスのインポートと同時に使い始められる

もちろん、独立した関数でも定義できますよ(^ω^)
印象として、そのクラスの中でしか使われない関数、または、そのクラスに関連した関数は、一つのクラスにまとめてしまっているほうが可読性が上がりますね!

 f:id:Hakushidango:20210228223510p:plain

 

最後に、いつ使うのかってところで…
冒頭に述べたように、【クラスを呼び出した時に初期値共通にしたい時】【可読性を上げたい時】にはよく使います。
もちろん、クラスの定義の変数を後で変更することもできるので便利ですよ。

そんな感じです。ありがとうございます(^ω^)