ホームページ > バックエンド開発 > Python チュートリアル > Python のクラス メソッドとインスタンス メソッドの違いは何ですか?

Python のクラス メソッドとインスタンス メソッドの違いは何ですか?

DDD
リリース: 2024-10-29 22:56:29
オリジナル
1028 人が閲覧しました

 What's the Difference Between Class and Instance Methods in Python?

Python のクラス メソッドとインスタンス メソッドを理解する

クラス メソッドとインスタンス メソッドは、オブジェクトがそれぞれどのように相互作用するかを定義するオブジェクト指向プログラミングの基本概念です。他の人とそのクラス。これら 2 種類のメソッドの違いを詳しく見てみましょう。

インスタンス メソッド

インスタンス メソッドは、クラスの特定のインスタンスに関連付けられています。これらは、それを呼び出したインスタンス上で排他的に動作するアクションまたは動作を表します。インスタンス メソッドを作成する場合、その最初のパラメータは常に self にする必要があります。これは、メソッドを呼び出す現在のインスタンスを参照します。このパラメータは、メソッドが動作するインスタンスのプレースホルダとして機能します。

たとえば、次のクラスについて考えてみましょう。

<code class="python">class Person:
    def __init__(self, name):
        self.name = name

    def introduce(self):
        print("Hello, my name is", self.name)</code>
ログイン後にコピー

introduc() メソッドは、 self 以外のパラメータはありません。 Person クラスをインスタンス化してこのメ​​ソッドを呼び出すと、その特定のインスタンスが操作され、その名前が表示されます。

クラス メソッド

インスタンス メソッドとは対照的に、クラス メソッドは特定のインスタンスではなく、クラス自体に関連付けられます。これらにより、クラスに対してアクションを実行したり、その属性に直接アクセスしたりすることができます。クラス メソッドの最初のパラメータは cls で、それが属するクラスを参照します。

次の例を考えてみましょう。

<code class="python">class Factory:
    @classmethod
    def create_product(cls):
        return cls("Product")</code>
ログイン後にコピー

create_product() メソッドは、次のことを行うクラス メソッドです。インスタンスは必要ありません。指定されたパラメーターを使用してクラスを呼び出して、新しい製品オブジェクトを作成します。クラス メソッドを使用すると、オブジェクトをインスタンス化することなく、クラス属性にアクセスして変更できます。

結論

クラス メソッドとインスタンス メソッドの区別を理解することは、効果的で保守しやすいオブジェクト指向コードを設計します。インスタンス メソッドを使用すると、クラスのインスタンスに独自の動作を持たせることができます。一方、クラス メソッドは、クラスを直接操作する方法を提供し、柔軟性とコードの再利用性を提供します。

以上がPython のクラス メソッドとインスタンス メソッドの違いは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート