Python OOP:クラス、オブジェクト、継承、およびコンストラクタと例
Python の OOP
Python の OOP 他の一般的なプログラミング言語と同じように、オブジェクトとクラスを使用することに重点を置いたプログラミング アプローチです。オブジェクトは、実世界の任意のエンティティにすることができます。 Python を使用すると、開発者はコードの再利用性に重点を置いた OOP アプローチを使用してアプリケーションを開発できます。 Python でクラスとオブジェクトを作成するのは非常に簡単です。
クラスとは?
Python のクラスは、データと関数の論理グループです。任意のコンテンツを含むデータ構造を自由に作成できるため、簡単にアクセスできます。
たとえば、顧客の詳細をオンラインで取得したい銀行員は、顧客クラスに移動します。 、トランザクションの詳細、引き出しと預金の詳細、未払いの債務などのすべての属性がリストされます。
このチュートリアルでは、
- Python クラスの定義方法
- 継承の仕組み
- Python コンストラクター
Python クラスの定義方法
クラスを定義するには、次の点を考慮する必要があります
ステップ 1) Python では、クラスは 「クラス」 によって定義されます。 キーワード
class myClass():
ステップ 2) クラス内で、このクラスの一部である関数またはメソッドを定義できます
def method1 (self): print "Guru99" def method2 (self,someString): print "Software Testing:" + someString
- ここでは、「Guru99」を出力する method1 を定義しています。
- 定義した別のメソッドは、"Software Testing"+ SomeString を出力する method2 です。 SomeString は、呼び出し元のメソッドによって提供される変数です
ステップ 3) 関数、ループ、if ステートメントなどのコードと同じように、クラス内のすべてがインデントされます。インデントされていないものはクラスにありません
注意 :Python での「self」の使用について
- 自己引数は、オブジェクト自体を参照します。したがって、自己という言葉を使用します。したがって、このメソッド内で、self は操作対象のこのオブジェクトの特定のインスタンスを参照します。
- Self は、Python のインスタンス メソッドの最初のパラメーターを示すために Python で好まれる名前です。オブジェクトのメンバーにアクセスするための Python 構文の一部です
ステップ 4) クラスのオブジェクトを作成するには
c = myClass()
ステップ 5) クラス内のメソッドを呼び出すには
c.method1() c.method2(" Testing is fun")
- method1 または method2 を呼び出すときに、self キーワードを指定する必要がないことに注意してください。これは、Python ランタイムによって自動的に処理されます。
- インスタンスでインスタンス メソッドを呼び出すと、Python ランタイムは意図的に提供したかどうかにかかわらず、「self」値を渡します
- 非自己引数に注意する必要があります
ステップ 6) これが完全なコードです
# Example file for working with classes class myClass(): def method1(self): print("Guru99") def method2(self,someString): print("Software Testing:" + someString) def main(): # exercise the class methods c = myClass () c.method1() c.method2(" Testing is fun") if __name__== "__main__": main()
継承の仕組み
継承は、オブジェクト指向プログラミングで使用される機能です。既存のクラスへの変更をほとんどまたはまったく行わずに、新しいクラスを定義することを指します。新しいクラスは派生クラスと呼ばれます 継承したものからベースと呼ばれます . Python は継承をサポートしています。 複数の継承もサポートしています .クラスは、サブクラスまたは継承クラスと呼ばれる別のクラスから属性および動作メソッドを継承できます。
Python 継承構文
class DerivedClass(BaseClass): body_of_derived_class
ステップ 1) 次のコードを実行します
# Example file for working with classes class myClass(): def method1(self): print("Guru99") class childClass(myClass): #def method1(self): #myClass.method1(self); #print ("childClass Method1") def method2(self): print("childClass method2") def main(): # exercise the class methods c2 = childClass() c2.method1() #c2.method2() if __name__== "__main__": main()
childClass の method1 は定義されていませんが、親の myClass から派生していることに注意してください。出力は「Guru99」です。
ステップ 2) 行番号 8 と 10 のコメントを外します。コードを実行します
これで、メソッド 1 が childClass で定義され、出力「childClass Method1」が正しく表示されます。
ステップ 3) 行番号 9 のコメントを外します。コードを実行する
構文
を使用して、親クラスのメソッドを呼び出すことができますParentClassName.MethodName(self)
私たちの場合、myClass.method1(self) を呼び出し、Guru99 が期待どおりに出力されます
ステップ 4 ) 19 行目のコメントを外します。コードを実行します。
子クラスのメソッド 2 が呼び出され、期待どおりに「childClass method2」が出力されます。
Python コンストラクター
コンストラクターは、オブジェクトを定義済みの値にインスタンス化するクラス関数です。
2 つのアンダースコア (_) で始まります。 __init__() メソッド
以下の例では、コンストラクターを使用してユーザーの名前を取得しています。
class User: name = "" def __init__(self, name): self.name = name def sayHello(self): print("Welcome to Guru99, " + self.name) User1 = User("Alex") User1.sayHello()
出力は次のようになります:
Guru99 へようこそ、アレックス
Python 2 の例
上記のコードは Python 3 の例です。Python 2 で実行する場合は、次のコードを検討してください。
# How to define Python classes # Example file for working with classes class myClass(): def method1(self): print "Guru99" def method2(self,someString): print "Software Testing:" + someString def main(): # exercise the class methods c = myClass () c.method1() c.method2(" Testing is fun") if __name__== "__main__": main() #How Inheritance works # Example file for working with classes class myClass(): def method1(self): print "Guru99" class childClass(myClass): #def method1(self): #myClass.method1(self); #print "childClass Method1" def method2(self): print "childClass method2" def main(): # exercise the class methods c2 = childClass() c2.method1() #c2.method2() if __name__== "__main__": main()
まとめ:
「クラス」は、関数とデータの論理グループです。 Python クラスは、オブジェクト指向プログラミングのすべての標準機能を提供します。
- クラス継承メカニズム
- 基本クラスのメソッドをオーバーライドする派生クラス
- メソッドは同じ名前の基本クラスのメソッドを呼び出すことができます
- Python クラスは、キーワード 「class」 で定義されます それ自体
- クラス内で、クラスの一部である関数またはメソッドを定義できます
- 関数、ループ、if ステートメントなどのコードと同様に、クラス内のすべてがインデントされます。
- Python の self 引数は、オブジェクト自体を参照します。 Self は、Python でインスタンス メソッドの最初のパラメーターを示すために Python で慣習的に好まれる名前です
- 意図的に提供したかどうかにかかわらず、インスタンスでインスタンス メソッドを呼び出すと、Python ランタイムは自動的に「self」値を渡します
- Python では、クラスはサブクラスまたは継承クラスと呼ばれる別のクラスから属性と動作メソッドを継承できます。
Python