「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > Python の OOP パラダイムにおけるインスタンス メソッドとクラス メソッドの主な違いは何ですか?

Python の OOP パラダイムにおけるインスタンス メソッドとクラス メソッドの主な違いは何ですか?

2024 年 11 月 20 日に公開
ブラウズ:437

What is the key difference between instance methods and class methods in Python\'s OOP paradigm?

クラス メソッドとインスタンス メソッド: 区別を解明する

Python の OOP パラダイムでは、メソッドはオブジェクトに対してタスクを実行するための基本概念です。これらのメソッドは、インスタンス メソッドとクラス メソッドの 2 種類に分類できます。これら 2 つのタイプの違いを理解することは、効果的なコード設計にとって重要です。

インスタンス メソッド: ゲートウェイとしての自己

インスタンス メソッドは、クラスの特定のインスタンスに関連付けられます。インスタンス メソッドを作成するときは、最初のパラメーターとして self を使用する必要があります。 Self は、メソッドを呼び出し、その属性へのアクセスを提供するインスタンスを表します。開発者としては、通常、インスタンス メソッドを呼び出すときに明示的に self を渡すことを省略します。これは、ピリオド (.) 演算子を使用するときに Python が処理するためです。

たとえば、インスタンス メソッド導入() を持つ Inst というクラスについて考えてみましょう。 ):

class Inst:

    def __init__(self, name):
        self.name = name

    def introduce(self):
        print("Hello, I am %s, and my name is " %(self, self.name))

このメソッドを使用するには、Inst クラスのインスタンスを作成し、それらのインスタンスに対して導入() を呼び出します。

myinst = Inst("Test Instance")
myinst.introduce()  # Outputs: Hello, I am , and my name is Test Instance

クラス メソッド: より高いレベルの視点

]インスタンス メソッドとは異なり、クラス メソッドはインスタンスを必要とせず、クラス自体を操作します。クラス メソッドを定義する場合、最初のパラメータは、メソッドが呼び出されるクラスを表す cls である必要があります。クラス メソッドは、特定のインスタンスに依存せず、クラス全体に関連する機能を提供するタスクに特に役立ちます。

クラス メソッドの簡単な例を以下に示します。

class Cls:

    @classmethod
    def introduce(cls):
        print("Hello, I am %s!" %cls)

この場合、インスタンスを必要とせずに、Cls クラスで直接 Introduction() メソッドを呼び出すことができます:

Cls.introduce()  # Outputs: Hello, I am 

クラスのインスタンスを使用してクラス メソッドを呼び出すこともできることに注意してください。その場合、クラス自体は次のように渡されます。最初のパラメータ。

結論 (オプション)

インスタンス メソッドとクラス メソッドの区別は、Python のオブジェクト指向プログラミングを理解するために重要です。インスタンス メソッドは特定のインスタンスに対して動作しますが、クラス メソッドはクラス自体に対して動作します。適切なメソッド タイプを選択すると、コードの効率性と保守性の両方が保証されます。

最新のチュートリアル もっと>

免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。

Copyright© 2022 湘ICP备2022001581号-3