![見出し画像](https://assets.st-note.com/production/uploads/images/85528570/rectangle_large_type_2_c540f227c4807c40b1fb9a3e74f66170.png?width=1200)
初心者が1からプログラミング(Python)を学んでみた Part11 - Python講習会参加(8/15 - ③)
講習会1日で詰め込みすぎだ!!!って思ってるんですけど初日だけで第三弾です。8/15の話はこれで終わりますが、講習会は4日間続きますので時間が出来たら順に載せます。初日第1弾と第2弾も載せてます。
今回の話は、FunctionとClassを使った話です。functionは以前に自分なりにまとめましたので(下参照)、今回は復習という形です。
classもPythonでは大事と言われ、講習会以前に教わりましたが、概念が難しく使いたいように使いこなせてないのが今の私です。なんとなく便利(?)な気もするのですが今はその程度です。今日のページは講習会で使われたそれぞれの例題を並べていきたいと思います。
function(def) 例題
講習会で習った例題その1は文字列をひっくり返して逆さ言葉を作るものでした(下参照)。
![](https://assets.st-note.com/img/1661505394143-6DfdnaGVkB.png?width=1200)
2行目から10行目の”””で囲まれたコメントの部分はPythonで定められた(全統一の)ドキュメントの作り方でfunctionやclassを作るとき(特に誰かにシェアする時)、同じ形態を利用してfunctionの意味、入れるもの(INPUTS)、取り出すもの(RETURNS)をまとめて書きます。今回は練習用に書きました。(INPUTSやRETURNSの言葉はたびたび変わります)こちらの形を使ったドキュメントはターミナル上で”pydoc function名”と入れると、作ったドキュメントのみターミナル上に表示できます(確かインストールが必要)。また、ウェブサイトを作ってfunctionのドキュメントを保存する場合、”pydoc -w function名”をターミナルに入れることによって”.html”のウェブリンクが作られ保存されます。
11行目で取り入れた文字(target)を逆さ文字にしています。コードの下に貼られた結果画面ではfunctionを呼び出し、入れた”Panda"の文字が逆さまになっています。
class 例題
classはいくつかのfunctionをまとめて1つにし、1つの何かを成し遂げるものです。classは主に大文字から始まる名前がつけられ、functionは小文字から始まる名前で区別するそうです。習った例題です。
![](https://assets.st-note.com/img/1661586692589-vQ7TIG9AJV.png?width=1200)
6行目にある__init__()(アンダーバー2本ずつ)はintializeの略でどのclassにも必須で一番上に入れなければいけないものです(これもルールです)。上述のfunctionのように、classでは入れるものを名前の後に指定することができないのでこの__init__()内で指定します。__init__()内でclassに取り入れるものを全て”self.”で書き換えるのは、普通functionの中で使われた言葉や名前はその中でのみ機能しその外では使えないのですが、共通した”self.”を入れることによってclass内全体で読み込む事が可能になるからです。そしてclassに”def”で始まるfunctionを足すとき1番初めの挿入値には必ず”self”が来ます。13行目の__str__(self)(同じくアンダーバー2本ずつ)もまた決まった形のfunction名であり、classを使うときclass内の文字を人間が読める”string”の形に直す機能をもたらします。
下写真は__str__(self)のfunctionをclassから削った場合で、プリントしても表示されるのはPC言語のみで人間には理解し難い文字列となります。
![](https://assets.st-note.com/img/1661587047190-IwsLNdRDnA.png?width=1200)
class全体ではなく一部(もしくはfunctionのひとつ)を取り出す場合、名前をつけたclassの呼び出しもとに” .(ピリオド)”をつけて呼び出したいものをつなげることで呼び出しが可能になります。
下写真の場合、現在new_entryにはEntryのclassがすでに入っているので(上述の写真より)、その中のaddressのみを取り出す形になります。
![](https://assets.st-note.com/img/1661587261657-E9rdbxpfGF.png?width=1200)
今日はこの辺にして、講習会の話とPythonの話を時間があったら載せていきたいと思います。
スキやコメント、フォロー等で応援をお願いします。