【Python】いろいろな特殊メソッド【Python】いろいろな特殊メソッド2020年5月8日Python学習Python学習【365日チャレンジ!】88日目のマスターU(@Udemy11)です。遠出してウォーキングでラムーまで散歩に行ったら、チャーシューを作るのにめちゃくちゃ良さげな豚ロースと大きくて葉がしっかりと詰まったキャベツがあったので、思わず買ってしまいました。両手に買い物袋をぶら下げつつ早足気味のウォーキングで帰ったのですが、ちょっと距離があったので、両手が筋肉痛になってしまいました。明日は、チャーシュー作りに精を出そうと思います。昨日は、クラスメソッドとあまり使うことのないスタティックメソッドを学習しました。クラスメソッドは、クラスからオブジェクト(インスタンス)を生成しなくても使えるメソッドで、スタティックメソッドも同様に、オブジェクトを生成しなくても使うことのできるメソッドでした。Japancatスタティックメソッドの場合は、クラス内に置かなくても、クラスの外に@staticmethodをつけずに記述すれば、普通にメソッドとして扱うことができるので、あまり使うことがないということでしたね。詳しい内容は、昨日の記事で確認してみてください。Udemyのセールを活用してほしかったあのスキルを手に入れよう!【非公式】2020.05.07【Python】クラスメソッドとあまり使わないスタティックメソッドhttps://udemyfun.com/python-classmethod-staticmethodPython学習【365日チャレンジ!】87日目のマスターU(@Udemy11)です。無性に焼き鳥が食べたいので、自宅で焼き鳥を計画中ですが、串に刺すのが面倒なんですよね。それに胸肉1枚で10本作れないし、皮は串に刺すときに、指に串を刺してしまいそうで怖いし、砂ずりを触ったときに、指を怪我してたら、めっちゃしみて痛くなるし、などなど結構面倒なんですが、やっぱ自宅で七輪を使って備長炭で焼くと、めっちゃおいしいんですよね。想像しただけでよだれが出てきます。いっても計画が実行に移されるかどうかはちょっと微妙なところです...それでは本日の学習をすすめましょう!特殊メソッド特殊メソッドは__(アンダーバー2つ)で囲まれたメソッドのことで、これまでに学習した__init__が代表的な特殊メソッドです。__init__は、オブジェクトを生成した際に、最初に読み込まれて、オブジェクトを初期化するメソッドです。このように、クラスから生成されるオブジェクトに何らかの処理を呼び出したときに自動的に実行されるメソッドが特殊メソッドです。name例えば、このコードは、引数nameをクラス変数nameに代入するという初期化をしています。ここまで学習してきた方なら、もうおなじみのメソッドですね。そんな特殊メソッドの中でも代表的なよく使うメソッドを紹介していきます。__str____str__が最もよく使う特殊メソッドで、オブジェクトを生成して、print()関数が使われるときに呼び出されるメソッドです。dog生成したオブジェクトdogを出力すると__str__が呼び出されて戻り値が自動的に返されています。str()関数、format()関数を実行したときにも自動的に__str__が呼び出されるようです。__len____len__は、長さを求める組み込み関数len()を呼び出したときに実行される特殊メソッドです。Animal('cat')print(len(c))出力結果3Animalクラスからcatを引数にしたcオブジェクトを生成して、そのcの長さを出力しているわけですが、len()を呼び出したことで、__len__メソッドが実行されて、引数catの長さが返されています。__add____add__はオブジェクトを2つ生成して、その2つを足し合わせるといった使い方ができます。d)出力結果cat:dogAnimalクラスから生成されたオブジェクトcの引数catとオブジェクトdの引数dogを:(コロン)を挟んで+でくっつけています。引数が数字の場合は、次のように少しコードを変更すれば、普通に足し算をした結果が出力されます。d)出力結果110__eq____eq__は同じクラスから生成されたオブジェクトのクラス変数が同じかどうかを判断するときに使われるので、==がオブジェクトで呼び出されたときに実行され、TrueかFalseを返してくれます。d)出力結果Trueもちろん、9行目のcatをdogに変更すれば、出力結果はFalseになります。その他の特殊メソッドその他の特殊メソッドで演算子に関する処理を呼び出したときに実行されるメソッドがこちら。__sub__(self,オブジェクト):引き算(-)を行うときに実行されるメソッド__mul__(self,オブジェクト):掛け算(*)を行うときに実行されるメソッド__truediv__(self,オブジェクト):割り算(/)を行うときに実行されるメソッド__and__(self,オブジェクト):AND条件(&)を使うときに実行されるメソッド__or__(self,オブジェクト):OR条件(|)を使うときに実行されるメソッド__ne__(self,オブジェクト):含まれない条件(!=)を使うときに実行されるメソッド__lt__(self,オブジェクト):小なり条件(<)を使うときに実行されるメソッド__gt__(self,オブジェクト):大なり条件(>)を使うときに実行されるメソッド型の変換に関する関数を実行するときに使われるメソッドがこちら。__int__(self):int関数を使うときに実行されるメソッド__float__(self):float関数を使うときに実行されるメソッド複数の値を持つ型の処理を実行するときに使われるメソッドがこちら。__len__(self):len関数を呼び出したときに実行されるメソッド__getitem__(self,key):値を参照するときに実行されるメソッド__setitem__(self,key):引数のkeyに要素を代入するときに実行されるメソッド__delitem__(self,key):del文が呼び出されたときに実行されるメソッド__iter__(self):iter関数を呼び出したときに実行されるメソッド__conteins__(self):比較演算子のinが使われたときに実行されるメソッドこれら以外の特殊メソッドもありますが、最も使用頻度の高い特殊メソッドは__init__で、次に来るのは__str__じゃないかということでしたので、その他の特殊メソッドは、そんなに真剣に覚えておかなくても問題はないのかなと思います。今日まででようやくオブジェクトとクラスのチャプターが終了しました。長かったような短かったような、どちらとも言えない感じですが、すでに最初の頃に学習した内容は、頭から抜け落ちてしまっているものもたくさんあると思います。時間をかけて学習してきたつもりですが、それでも学習した内容を完璧に覚えているものは数えるくらいしかありません。実践はまだ少し先のようですので、しっかりと復習しつつ、明日以降のファイル操作とシステムについて学習を進めていこうと思います。【Python】アスタリスクのインポートとinit【Python】Zipファイルを保存せずに読み込んで削除ができるioストリームシートキーと秘密キーファイルを入力してスプレッドシートで計算するアプリVertualboxのインストール【Ansible】webサーバー構築でエラーなどの原因を整理しました。Udemyがセールをしているかどうかは、こちら...【Python】模範的な対話アプリケーションの構造解説(MVCモデル)Python学習【365日チャレンジ!】109日目のマスターU(@Udemy11)です。なにげに玄関を眺めていると、アシナガバチがポストに入って...【Python】マルチスレッドとマルチプロセスについてPython学習【365日チャレンジ!】203日目のマスターU(@Udemy11)です。9月になって少しは過ごしやすくなるのかと思いきや、まだま...【Python】簡単な対話アプリケーションの作成Vol.7Python学習【365日チャレンジ!】108日目のマスターU(@Udemy11)です。ホットケーキミックスが品薄になっていたらしですが、大量の...【Python】インフラの仮想環境を構築するイメージを理解しようPython学習【365日チャレンジ!】239日目のマスターU(@Udemy11)です。Keysのキー割り当てにハマった話Googleスプレッドシートの使い方講座Anacondaのアンインストールからの再インストールrequestsを使って仮想通貨のデータを取得Python学習【365日チャレンジ】を振り返ってみます。(2)Amazonのアソシエイトとして、当メディアは適格販売により収入を得ています。