Notice: Function _load_textdomain_just_in_time was called incorrectly. Translation loading for the all-in-one-seo-pack domain was triggered too early. This is usually an indicator for some code in the plugin or theme running too early. Translations should be loaded at the init action or later. Please see Debugging in WordPress for more information. (This message was added in version 6.7.0.) in /virtual/mcu03iphuk/public_html/radiology-technologist.info/wp-includes/functions.php on line 6114

Notice: Function _load_textdomain_just_in_time was called incorrectly. Translation loading for the easy-fancybox domain was triggered too early. This is usually an indicator for some code in the plugin or theme running too early. Translations should be loaded at the init action or later. Please see Debugging in WordPress for more information. (This message was added in version 6.7.0.) in /virtual/mcu03iphuk/public_html/radiology-technologist.info/wp-includes/functions.php on line 6114

Notice: Function _load_textdomain_just_in_time was called incorrectly. Translation loading for the urvanov-syntax-highlighter domain was triggered too early. This is usually an indicator for some code in the plugin or theme running too early. Translations should be loaded at the init action or later. Please see Debugging in WordPress for more information. (This message was added in version 6.7.0.) in /virtual/mcu03iphuk/public_html/radiology-technologist.info/wp-includes/functions.php on line 6114

Notice: Function _load_textdomain_just_in_time was called incorrectly. Translation loading for the breadcrumb-navxt domain was triggered too early. This is usually an indicator for some code in the plugin or theme running too early. Translations should be loaded at the init action or later. Please see Debugging in WordPress for more information. (This message was added in version 6.7.0.) in /virtual/mcu03iphuk/public_html/radiology-technologist.info/wp-includes/functions.php on line 6114

Notice: Function _load_textdomain_just_in_time was called incorrectly. Translation loading for the advanced-ads domain was triggered too early. This is usually an indicator for some code in the plugin or theme running too early. Translations should be loaded at the init action or later. Please see Debugging in WordPress for more information. (This message was added in version 6.7.0.) in /virtual/mcu03iphuk/public_html/radiology-technologist.info/wp-includes/functions.php on line 6114

Notice: 関数 _load_textdomain_just_in_time が誤って呼び出されました。lancr ドメインの翻訳の読み込みが早すぎました。これは通常、プラグインまたはテーマの一部のコードが早すぎるタイミングで実行されていることを示しています。翻訳は init アクション以降で読み込む必要があります。 詳しくは WordPress のデバッグをご覧ください。 (このメッセージはバージョン 6.7.0 で追加されました) in /virtual/mcu03iphuk/public_html/radiology-technologist.info/wp-includes/functions.php on line 6114
”クラス”って何? | 診療放射線技師がPythonをはじめました。

”クラス”って何?

はじめに

Pythonを使い始めて、なんとも理解しにくかったのが”クラス”なるもの。

まずは、インスタンスの生成、イニシャライズ、selfを使わなくてはいけないとか何が何だか、なんでこんなことをしなくてはならないのか・・・・・

まったく理解できませんでした。

クラスなんて使わなくてもリストで対応できるじゃん!!

なんて思っていたのですが、苦労しながらも使っているとクラスって本当に便利な物だなと分かってきました。

今回は、そのクラスなるものの説明をしたいと思います。

ただ、自分なりの解釈なので間違っていたらごめんなさん。


広告
デル株式会社

そもそも、クラスってなんで使うの?

何かの書籍に、同じ属性をもったものを複数扱う時に使うと書いてあった気がします。

同じ属性?単語の意味はわかっても、イメージできない。プログラミングの中で使うものの属性?

わからない。。。。

答えは簡単でした。

職場のスタッフを例えに説明したいと思います。

スタッフは複数人いて、それぞれに名前、性別、年齢、担当モダリティー、所有資格等様々な情報があります。それは、全員が持ち合わせている情報となります。その情報をクラスを使わずに使おうとするとそれぞれに変数名を割り当てるか、リストを作成して対応する場所に情報を格納しなくてはいけません。

変数が増えると、その管理がとても煩雑になりますし、変数を用いた計算をしたい時にそれぞれの変数に対してコードを書く必要ができコードが長くなってしまう事があります。

Aさん、Bさん、Cさん、Dさんを考えましょう。それぞれに変数名を作成してみると

A_name、 A_sex、 A_age、 A_moda、 A_capa

B_name、 B_sex、 B_age、 B_moda、 B_capa

C_name、 C_sex、 C_age、 C_moda、 C_capa

D_name、 D_sex、 D_age、 D_moda、 D_capa

と合計20個の変数が必要になってきます。


リストを使った場合は、何番目にどの情報を入れたか管理しなくてはならなくてとても面倒です。(私は、クラスが分からずにこの方法を取っていましたがすごく煩わしかったです。。。。)

しかし、クラスを使うことで同じ変数名の使いまわしができるようになります。ここから先は、使い方の方で説明していきたいと思います。


私は、以下の本で理解することができました。(Python関連の書籍ではないですが・・・・)クラスの部分だけ理解するのであれば本屋さんで立ち読みでも十分です。オブジェクト指向プログラミングの概要を簡単に知りたければお勧めの書籍です。


広告
HP Directplus -HP公式オンラインストア-

クラスの使い方

まずは、コードを


クラスを使用するにはまず、インスタンス(staff1やstaff2)といって箱のようなものを作成します。上記コードの10~13行目となります。今回の例では人物を設定します。その設定に名前、性別、年齢、担当モダリティー、所有資格等様々な情報を追加していきます。その作業が初期化にあたり

def __ini__():

の部分にあたります。

私は、ここでつまずきました。何故、selfを使うのか。

答えは簡単で、クラスは同じような物を複数個作成します。なので、同じ変数名も複数個作成されることになるので、自分自身の変数名と示しているのだと思います。ここは、おまじない的に覚えてしまうのがいいと思います。


後は、それぞれの値を使いたい時にインスタンス名(staff1やstaff2)に変数名

インスタンス名.変数名

で呼び出すことができます。例えば以下のようになります。

いかがですか?


広告
BTOパソコン・パソコン関連商品がお買い得!パソコン工房のセール

最後に

クラスを使うことで、同じ変数名を使用できる事はすごくすっきりしていいと思いませんか?

また、個人作成でのプログラミングではあまり大きな効果はないかもしれませんが数人でコードを作成していく時にはとても効果があるみたいです。

是非とも、クラスを使いこなして効率よくプログラミングをしていきましょう。

お疲れ様でした。


環境

  • windows10
  • python3.6.1
  • Anaconda custom(64-bit)
  • PyCharm2020.2(Communication Edition)

広告
上新電機 パソコン買取サービス

Categories:

Tags: