2017-01-01から1年間の記事一覧
ポリモーフィズムとは ポリモーフィズムとは、日本語で多態性と言います。多態性とは、クラスの種類に関わらず、異なるオブジェクトに対して同じ操作を適用することです。 ポリモーフィズムの実装 説明を聞いてもわかりにくいと思うので、例を見ましょう。 #…
継承をより詳しく 前回は、継承の基礎を説明しました。継承とは、既存のクラスを指定し、追加や変更したい一部だけを定義することにより新しいクラスを定義する方法でした。今回は、もう少し詳しく、継承におけるメソッドのオーバーライドや多重継承について…
継承 継承とは、既存のクラスを利用して新たなクラスを定義する方法のことです。既に存在するクラスの機能を一部変更したり、追加したい場合にもともとのクラスを自体を変更してまうと、他のプログラムとの互換性などを損なう可能性があります。そのような場…
カプセル化の続き 今回は前回に続き、カプセル化について説明します。今回はプライベートなクラス変数とプライベートなメソッドについて説明します。 クラス変数 クラス変数は、クラスに属する変数です。今まで定義してきた変数は、インスタンスに属するメン…
カプセル化 Pythonはオブジェクト指向のプログラムを自由に開発することができます。 しかし、そのためにインスタンスの属性を書き間違える、呼び出してはいけないはずの関数を呼び出すなどのミスをしてしまうことがあります。このようなミスを未然に防ぐた…
特殊メソッド 前回クラスの中で__init__()メソッドを定義しました。__init__()メソッドは、渡された引数を使い、クラス定義から新しく作成されたオブジェクトを初期化する特殊メソッドです。今回は__init__()メソッド以外の特殊メソッドについて説明したいと…
クラスとオブジェクト オブジェクトが何かしらの形のあるものだとすれば、クラスはその形を作るための鋳型だと考えることができます。この鋳型があることにより、大量のオブジェクトを好きな時に簡単に作れるようになります。 クラスの定義とインスタンスの…
オブジェクト指向学ぶ理由 ここまで説明してきた内容で、ほぼ全てのプログラムを書くことができます。しかし、ここまでの説明の中に出てきたものだけでコードを書いていくと、プログラムが非常に大きくなってくると開発者の頭が追いつかず、上手く書けなくな…
モジュールについて詳しく知ろう 前回モジュールのインポート方法について大まかに説明しました。今回は、もう少し詳しく説明していきます。 モジュールのサーチパス 前回は、同じディレクトリ(フォルダ)に存在するモジュールをインポートしました。Pythonは…
スクリプトの作成とモジュール 前回の最後の方のサンプルを除き、その全てをPythonの対話型インタープリタの中で実行してきました。 しかし、インタープリタで実行すると毎回起動するたびに前回のコード(定義した関数やクラスなど)は失われてしまいます。そ…
スコープと名前空間 前回の説明の中で、スコープという言葉が出てきたと思います。今回は、そのスコープと名前空間について説明したいと思います。 スコープ スコープとは簡単に言えば「変数が使用できる範囲」です。これは変数がプログラムのどこからでも好…
引数について 前回は関数の定義や呼び出しについて説明しました。そして、最後に引数について実引数と仮引数の違いを補足として説明しました。今回は、引数の色々な定義の仕方について説明していきます。具体的には、位置引数、キーワード引数、デフォルト引…
関数とは これまでのコードは非常に短いものでした。確認のためやサンプルとして提示する分には問題ありませんが、現実的なコードはこれほど短いということはないでしょう。コードが長くなればなるほど似たような処理が増えてきます。その度に同じような処理…
「for」に入る前に 前回は登場しませんでしたが、今回はイテレータというものが登場します。イテレータとは、イテレーションごとにリストや辞書などから要素を1つずつ取りだして返すものです。イテレーション とは、ループのことです。また、Pythonにおいて…
繰り返し「while」 繰り返しは、条件が成立する限り同じブロックを実行します。下に繰り返しの簡単なフローチャートを載せてあります。 繰り返しの書き方 単純な繰り返し まずはサンプルプログラムを見ましょう。インデントは空白4つです。 >>> time = 10 >>…
分岐 分岐は、実行する文を条件により変えます。以下に分岐の簡単なフローチャートを載せてあります。 分岐の書き方 単純な分岐 まずはサンプルプログラムを見ましょう。インデントは空白4つです。 >>> feel = 'sleep' >>> if feel == 'sleep': ... print('G…
Pythonの書き方 Pythonはインデントによりプログラムの構造を定義しています。インデントとは、行頭の位置を調整することです。それにより、Pythonはプログラム構造を空白により制御することができます。この点は、他の言語と大きな違いです。通常、インデン…
集合について 集合は、辞書からキーだけを残した辞書のようなものです。つまり、集合においてもキーは一意でなければいけません。集合は、要素としてその値が存在するかどうかだけに注目しているときに使います。Pythonの集合は、数学における集合とほぼ同じ…
辞書について 今回は、辞書について書いていきます。 辞書は、個々の値に一意なキーを与えたリストだと考えることができます。 リストでは、オフセットを使って要素を操作しました。 一方、辞書では順序が管理されていないので、キーを用いて要素を操作しま…
タプルについて 今回は、タプルについて書いていきます。タプルは、リストとほとんど同じです。しかし、リストとは異なりイミュータブルです。そのため、あるタプルを一度定義した後にそのタプルについて要素の追加や削除、変更を加えることはできません。 …
リストについて 今回は、Pythonで最もよく使うであろうリストについて説明していきます。リストは、要素を順番に管理したい時に役立ちます。リストはミュータブルなのでオフセットにより要素を簡単に変更できるので、要素の順序や内容がよく変わるものに向い…
評価の仕組み 今回は評価の仕組みを学んでいきましょう。評価とは、Pythonが式に従って計算を処理することを指します。今回は優先順位と結合規則についてです。特に難しいことはなく、数学や算数の演算規則とほとんどは同じになります。 優先順位の原則 式に…
文字列の基本操作[2] 前回は文字列の基本操作のうちエスケープシーケンス、連結、繰り返しについて学びました。 今回は文字の抽出とスライスについて勉強していきましょう。 特にスライスは、配列を扱う際にも重要な操作となりますのでしっかりと身につけて…
文字列の基本操作[1] 前回学んだ型の中にに文字列というものがありました。 今回は、その文字列についての操作をもう少し詳しく学んでみましょう。 \によるエスケープ Pythonでは文字列に含まれる一部の文字の意味をエスケープして、特殊な意味な文字を表現…
データ型 今日はデータの方について書きます。 プログラムで扱うことのできるデータの種類のことをデータ型や型と呼びます。 Pythonでは、型とクラスは同一のものです。 クラスについてはおいおい説明します。 Pythonは動的に型付けされるので、自分で型を指…
変数を使ってみよう! オブジェクト指向のオブジェクトって? 今回は変数の定義の仕方と使用法について説明します。 Pythonの変数について本当に理解するためにはオブジェクト指向の知識が多少必要です。 まずは、オブジェクト指向のオブジェクトとは何かに…
まえがき 今回は、Pythonの対話型インタープリタの使い方について書きます。 対話型インタープリタの起動 前回、helloworld.pyファイルを作り、その中に1行のコードを書きました。 しかし、一行のために毎回ファイルを作るのはめんどうです。 そこで、Python…
ようこそPythonの世界へ まずは記念すべき第一回目ということでpythonの特徴について書きます。 私が考えるpythonの特徴は以下のようなものになります。 学びやすく、読みやすい言語体系 オブジェクト指向プログラミング 数多くのライブラリが使用できる(特…