Python OOP: クラス、オブジェクト、継承、コンストラクタとその例

OOPsの Python

OOPsの Python 他の一般的なプログラミング言語と同じように、オブジェクトとクラスの使用に重点を置いたプログラミング手法です。オブジェクトは、現実世界のあらゆるエンティティにすることができます。 Python 開発者は、コードの再利用性を重視したOOPアプローチを使用してアプリケーションを開発できます。クラスとオブジェクトを作成するのは非常に簡単です。 Python.

クラスとは何ですか?

クラス Python データと関数の論理的なグループです。任意のコンテンツを含むデータ構造を自由に作成でき、簡単にアクセスできます。

例えば、オンラインで顧客の詳細を取得したい銀行員は、 顧客クラス取引の詳細、引き出しと入金の詳細、未払いの債務などのすべての属性がリストされます。

定義方法 Python クラス

クラスを定義するには、以下の点を考慮する必要があります。

ステップ1) In Pythonクラスは、 "クラス" キーワード

class myClass():

ステップ2) クラス内で、このクラスの一部である関数またはメソッドを定義できます。

def method1 (self):
   print "Guru99"
def method2 (self,someString): 
   print "Software Testing:" + someString
  • ここでは、「Guru1」を出力するメソッド99を定義しました。
  • 私たちが定義したもう 2 つのメソッドは、「Software Testing」+ SomeString を出力するメソッド XNUMX です。 SomeString は呼び出しメソッドによって提供される変数です。

ステップ3) 関数、ループ、if ステートメントなどのコードと同様に、クラス内のすべてのものはインデントされます。インデントされていないものはクラス内にありません。

定義する Python クラス

注意: 「self」の使い方について Python

  • self 引数はオブジェクト自体を参照します。そのため、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 クラス

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 コンストラクター

コンストラクターは、オブジェクトを事前定義された値にインスタンス化するクラス関数です。

二重アンダースコア(_)で始まります。__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 クラスは、オブジェクト指向プログラミングのすべての標準機能を提供します。

  • クラス継承メカニズム
  • 基本クラスのメソッドをオーバーライドする派生クラス
  • メソッドは同じ名前の基本クラスのメソッドを呼び出すことができます
  • Python クラスはキーワードによって定義されます "クラス" 自体
  • クラス内では、クラスの一部である関数またはメソッドを定義できます。
  • 関数、ループ、if ステートメントなどのコードと同様に、クラス内のすべてがインデントされます。
  • 自己の議論 Python オブジェクト自体を指します。慣例的にselfは、 Pythonインスタンスメソッドの最初のパラメータを示す Python
  • Python インスタンスメソッドを呼び出すと、意図的に指定したかどうかに関係なく、ランタイムは自動的に「self」値を渡します。
  • In Pythonクラスは、サブクラスまたは継承クラスと呼ばれる別のクラスから属性と動作メソッドを継承できます。