表示調整
閉じる
挿絵表示切替ボタン
▼配色
▼行間
▼文字サイズ
▼メニューバー
×閉じる

ブックマークに追加しました

設定
0/400
設定を保存しました
エラーが発生しました
※文字以内
ブックマークを解除しました。

エラーが発生しました。

エラーの原因がわからない場合はヘルプセンターをご確認ください。

ブックマーク機能を使うにはログインしてください。
16/19

かんたんなクラス解説

 申し訳ばかりの異世界要素入れたプログラミング講座、はーじまーるよー!


 はい、ちょっとノリを変えてみました。


 異世界、憧れなんでしょうか? 死にたくないので異世界転生は無理そうですが……転移ならワンチャン……?


 それはさておき、今回はクラスです。


 クラスと言っても学校のクラスとは全く関係ないです。クラスとは設計図のようなもので……まあ見た方が早いですね……そんな何十行もないんで例によって載せます。


class Sword_and_Magic():

def __init__(self,worldName):

self.worldName = worldName

print("ようこそ異世界"+ self.worldName + "へ!")

def guild(self):

print("ここ"+self.worldName+"でのあなたのレベルが測定できます")

 メンバ変数などもあるのですが、ここではworldNameですね。

 意味はこれから説明していくのでご心配なく。


 まずはclass Sword_and_Magic():ですね、お察しの通りこれはSword_and_Magicクラスの宣言です。

 意外と読む人がいるので異世界ものにもこびたネーミングにしておきます。


 注意が必要なのが__init__(self,worldName):です。これはクラスの設計図の通りに作られたインスタンスと呼ばれる実体が生成されたときに自動で呼ばれる関数です。


 ”__”←これは「ダンダー」と読むそうです、ダブルアンダースコアの略でしょう。


 さらにPythonをやるなら避けて通れない「self」が登場しています。


 selfは処理系によって予約された言葉ではありません。実際この中の「self」をまとめて別の言葉に置き換えてもちゃんと動きます。

 ですが慣習に則ってselfをみんなが使っています、変えるのも大変ですしPyCharmが自動補完で入れるのが「self」なのでこのままにしておきましょう。


 下の関数はギルドへの案内です(気持ちばかりの異世界推し)このクラスを実際に使うにはインスタンスと呼ばれる実体が必要です。


 さっき設計図と書きましたが、レシピと呼んでもいいです。

 どんなにおいしい料理でもレシピを書いた紙を食べることはできませんね、レシピはその通りに作って初めて食べられる料理になります。


 Pythonではこの実体インスタンスを作るのは非常に簡単で

SandM = Sword_and_Magic("ミスティルテイン")

 と書くだけです。ここではSandMという変数にSword_and_Magicクラスのインスタンスを作って入れています。


 ミスティルテインってなんぞや? はいそれも説明しましょう。


def __init__(self,worldName):


 とても簡単に言えばこのコンストラクタ(この場合ワールドコンストラクタとか呼ぶとかっこいいかな……)に入れるworldNameつまり世界名を設定しています。

 selfについては自分自身のクラスを指しているわけです。これを付けるとグローバル変数や引数じゃないよ位に覚えておけばいいです。


 これを次の行

print("ようこそ異世界"+ self.worldName + "へ!")

 で使用しています実行結果は

ようこそ異世界ミスティルテインへ!

 になります。ああ! 異世界人が自分の世界を異世界言わんやろとか言わないで! 異世界で検索に引っかかりたいんです! ほんの出来心で……


 まあそれはさておき、これでクラスのインスタンスを生成したときに上記のメッセージが表示されます。

 これがコンストラクタです。インスタンスが生成されるときに自動で呼ばれるという意味はこういうことです。


 ではguild(ギルド)クラス内関数を実行しましょう。大丈夫! とっても簡単で普通の関数呼び出しにインスタンス名+.を付けるだけです。

SandM.guild()

 関数名にインスタンス名のSandMが付いただけです.で区切ってますね、つまりSandMというインスタンスのメンバ関数guildを呼び出しています。


 SandM.って要るの? それも確かな疑問です。これについては次の「もう一つ」インスタンスを作ったら分かります。


WE = Sword_and_Magic("ワールドエンド")

 ここでWEというSword_and_Magicのインスタンスを生成します。

 では以下2行を実行するとどうなるでしょう?

SandM.guild()

WE.guild()


 どちらも同じクラスSword_and_Worldの同じ関数guild()を呼んでいます、同じ関数を呼んでいますが実行結果は異なります

ここミスティルテインでのあなたのレベルが測定できます

ここワールドエンドでのあなたのレベルが測定できます

 このようにコンストラクタで代入された世界名が異なっていますね。つまり二つのインスタンスは別物ということです。


 これがクラスというものです。意外と簡単ですね。難しいのはコンストラクタ__init__くらいでしょうか?


 まあこれはインスタンス生成時に自動で呼び出される位に覚えておきましょう。


 以上! クラスの簡単な説明でした、読者の皆さん! 今回もありがとうございます。

評価をするにはログインしてください。
ブックマークに追加
ブックマーク機能を使うにはログインしてください。
― 新着の感想 ―
このエピソードに感想はまだ書かれていません。
感想一覧
+注意+

特に記載なき場合、掲載されている作品はすべてフィクションであり実在の人物・団体等とは一切関係ありません。
特に記載なき場合、掲載されている作品の著作権は作者にあります(一部作品除く)。
作者以外の方による作品の引用を超える無断転載は禁止しており、行った場合、著作権法の違反となります。

この作品はリンクフリーです。ご自由にリンク(紹介)してください。
この作品はスマートフォン対応です。スマートフォンかパソコンかを自動で判別し、適切なページを表示します。

↑ページトップへ