\r\n\r\n

Pythonによるオブジェクト指向プログラミングの入門書

Pythonを最大限に活用するためには、Pythonがオブジェクト指向プログラミング(Oop)でどのように動作するかを理解する必要があります...

Pythonは、Raspberry Piから機械学習まで、あらゆる場面で使われています。しかし、大規模なプロジェクトに取り組むのであれば、Pythonをオブジェクト指向プログラミング(OOP)とどのように組み合わせて使えるかを知っておく必要があります。この記事では、知っておくべき基本的なことを説明します。

もしあなたがプログラミングにあまり興味がないのであれば、これらのベストなmontypythonのスケッチを見てみてはいかがでしょうか?やはり、言語のインスピレーションの源なんですね。

待てよ、pythonは本物の言語じゃないのか?

Pythonは本物のプログラミング言語であり、人気があり、急速に成長しています。疑似コードのように読めて、PiでMinecraftを書くのに使えるからと言って、それ以下の言語として扱う必要はないのです。

オブジェクト指向プログラミング(OOP)は現代のソフトウェア開発の基礎であり、Pythonはこのトレンドに完全に対応できる位置にあります。他の主流言語とは1つか2つ違うことをするかもしれませんが、気に病むことはありません。

このチュートリアルは、あなたがPythonの基本を知っていることを前提にしますが、その過程で複雑な部分をすべてカバーします。Pythonを初めて使う方は、新しいプログラミング言語を学ぶためのヒントや、Pythonでgooglesheetを読み書きするような簡単なプロジェクトを見てみてはいかがでしょうか?

pythonの前提条件とセットアップ

始める前に、Pythonの開発環境をインストールしておくとよいでしょう。Python 3.6.5を使用しますが、古いバージョンでも構いませんが、かなり新しいバージョンを使用していれば、問題は少なくなります。

もし、PIP for Pythonがインストールされていない場合は、仮想環境を作成する必要があります(ただし、最近のPythonのインストールには付属しています)。その設定さえできれば、もう大丈夫です。さあ、はじめましょう

Pythonの基礎:クラス

クラスは、OOPの基本的な構成要素である。授業とは、計画や設計図のようなものです。オブジェクトの特性を定義するものです。例えば、自動車のクラスがあれば、4つの車輪、少なくとも1つの座席、エンジンがあると記載されるかもしれません。

Pythonを使ったクラスの作成方法を説明します。

class Vehicle: """ This class defines vehicles. """ pass

単純な話でしょう?ここで何かが起きている。クラストップのコメントに注目してください。これは、docstringと呼ばれる特殊なコメントです。あなたのコードについて少し説明してくれるはずです。逆カンマ("")を3つ使うことで、これがdocstringであることをPythonに伝えることができます。

passキーワードは、Pythonに何もしないように指示します。ToDoリストと思っていただければ、特別な言葉です。コードを実行させることはできても、実際に何かをすることはできません。

このコードを実行すると、何も起こらないことがわかります。クラスをインスタンス化する必要があります。これは事実上、クラスで定義された計画に基づいてオブジェクトを構築することを意味します。コピーはいくつでも作成でき、それぞれ異なるプロパティを持つことができます。その方法を紹介します。

red_car = Vehicle()

もう一度実行すると、何も起こらないことがわかります。Vehicleクラスは車の設計図を定義し、最新の行ではVehicleオブジェクトを作成し、それにredanthus carという名前をつけています。

オブジェクトはいくつでも**可能です。

red_car = Vehicle()green_car = Vehicle()blue_car = Vehicle()

Vehicleクラスに "immit "というメソッドを追加してください。

class Vehicle: """ This class defines vehicles. """ def __init__(self, color='plain'): """ Setup some custom car properties """ print('New car made!') self.color = colorred_car = Vehicle()green_car = Vehicle()blue_car = Vehicle()

特にこの初期化方法にはご注意ください。アンダースコア2個で始まり、アンダースコア2個で終わる必要があります。これはPythonの特殊なメソッドです。新しいオブジェクトを作成するときに自動的に呼び出されます。このコードを実行すると、"New car**!" と表示されます。3回

最後に、initはcolorというカスタムパラメータを受け取ります。等号とその直後の文字列は、指定がなければ色を「プレーン」に設定するようPythonに指示します。作成時に車の色を設定するインスタンスを修正することができます。

red_car = Vehicle(color='red')green_car = Vehicle(color='green')blue_car = Vehicle(color='blue')

車の色を印刷すると、3つとも同じ仕様(クラス)に従っているにもかかわらず、それぞれのインスタンスが異なる色を持っていることがわかります**。 Pythonでは、ほとんどすべての変数やオブジェクトにアクセスできます - 他の言語では、以下の操作を実行することはできません。

print(red_car.color)print(green_car.color)print(blue_car.color)

これは、自己の色に色を割り当てているためです。Pythonのもう一つの特別なキーワードであるSelfは、クラスの各特定インスタンスを参照するものです。selfを使用すると、そのインスタンスに固有のデータを設定したり、アクセスしたりすることができます。例えば、この赤いクルマは赤い色をしている。

カーノイズを変数に格納するように、㊙インテグレーションメソッドを修正します。

self.noise = 'Vroooom'

カーノイズをプリントするには、カラーと同じようにノイズ変数にアクセスすればよいのですが、これは最適な方法とは言えません。運転中に他のコードも同時に実行したい場合、もしかしたらまだ書いていないコードがあるかもしれません。あるいは、将来的にクルマの走らせ方を変えたい場合はどうすればいいのか。関数(メソッドとも呼ばれる)を作ることで、物事の動作を厳密に制御することができます。下記の⾵⼿順に追加してください。

def drive(self): print(self.noise)

このメソッドを呼び出すには、非常にシンプルに

red_car.drive()

Pythonはdriveメソッドが呼ばれるたびに音を出力します。これを拡張してすべてのタスクを実行することもできますが、今はこのままにしておきます。

よくぞ言ってくれました。ここまでで、基本的なことはしっかり理解できたはずです。それぞれ独自の機能と性能を持つクラスを作成し、使用できるようにする必要があります。

Pythonのプライベート変数についてはどうですか?

他の多くの言語では、プライベートオブジェクトは非常に一般的です。これらは、クラス外からアクセスできない単なる変数や関数です。使用する前に特別な条件を満たす必要があるコードである場合もあれば、単に内部使用のために設計されたものである場合もあります。理由はどうあれ、インスタンスはプライベートメンバーにアクセスできない。Pythonでコードを書いているのでなければ。

Pythonには、プライベートメンバーはいません。その代わり、Pythonは "我々は皆、同意した大人である "という名誉ある制度に頼っています。Pythonプログラマは、クラスの内部をいじくり回す必要があるかもしれないことを理解していますし、それは大丈夫です。

しかし、Pythonには、ある変数を「private」とマークする慣習があります。これは、「この変数は内部使用なので、触る必要はありませんよ」という意味です。慣例として、変数名の前にアンダースコアを付ける。

_some_secret_variable = 42

これは他のプログラマへの警告です。pythonはあなたがアクセスすることを妨げませんが、アンダースコアはこのように使用するように設計されていないので、あなた自身のリスクで使い続けるべきであることを告げているのです。

これはPythonが隠された内容を修正する方法ですが、本来あるべき姿の**動作**にならない危険性があります。

Pythonの継承を理解する

コードの重複や再利用を減らすには、継承も有効な手段です。親と子の関係を考えると、継承によって、子は親と共通のコードを共有できる。親を継承した電気自動車を実装してみよう。

このコードを以下の車種カテゴリに追加してください。

class ElectricCar(Vehicle): """ Electric vehicle class. """ def charge(self): print('Zzz')electric_car = ElectricCar()electric_car.charge()electric_car.noise = 'Whoosh'electric_car.drive()

電気自動車を定義した後、2つの括弧の中で車両クラスを指定する。これは、パイソンに「EVはクルマの子どもである」ということを伝えているのです。これにより、車両に搭載されているすべてのデータやメソッドにアクセスすることができます。

電気自動車には、独自の取り組みがあります。充電できる(他の車両は充電できない)。車の音を変えてから運転することで、電気自動車は音が違うことがわかり、運転方法を定義する必要がありません。これは、ドライブが親から受け継がれるからです。

Pythonの知識をさらに広げる

これらの例は、PythonでOOPすることがいかに簡単かを示しています。今回はごく基本的なことしか説明しませんでしたが、これさえ押さえておけば、あとは簡単です。

Pythonの学習を継続したい、あるいはこれらのOOPスキルを実践したいのであれば、Pythonの配列やリストを見たり、PythonとJavaScriptを通信させたりしてはいかがでしょうか。

Pythonを学ぶのに最適なウェブサイトをチェックすることを忘れないでください。

あなたが興味を持っているかもしれない記事

匿名者
匿名者

0 件の投稿

作家リスト

  1. admin 0 投稿
  2. 匿名者 0 投稿

おすすめ