工業製造
産業用モノのインターネット | 工業材料 | 機器のメンテナンスと修理 | 産業プログラミング |
home  MfgRobots >> 工業製造 >  >> Industrial programming >> Python

Python OOP:クラス、オブジェクト、継承、およびコンストラクタと例

Python の OOP

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

クラスとは?

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

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

このチュートリアルでは、

Python クラスの定義方法

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

ステップ 1) Python では、クラスは 「クラス」 によって定義されます。 キーワード

class myClass():

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

def method1 (self):
   print "Guru99"
def method2 (self,someString): 
   print "Software Testing:" + someString

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

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

ステップ 4) クラスのオブジェクトを作成するには

c = myClass()

ステップ 5) クラス内のメソッドを呼び出すには

c.method1()
    c.method2(" Testing is fun")

ステップ 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

  1. C# クラスとオブジェクト
  2. Python オブジェクト指向プログラミング
  3. Python の継承
  4. RaspberryPiとPythonを使用したロボットの構築
  5. 構造体とクラスの違い:C++ の例で説明
  6. 例を使用した Python 文字列 strip() 関数
  7. 例を使用したコレクション内の Python カウンター
  8. Python の type() と isinstance() と例
  9. Python List index() と例
  10. Java - オブジェクトとクラス
  11. Python-オブジェクト指向