ホームページ >バックエンド開発 >Python チュートリアル >静的変数と静的メソッドは Python でどのように機能しますか?

静的変数と静的メソッドは Python でどのように機能しますか?

Susan Sarandon
Susan Sarandonオリジナル
2024-12-17 19:05:12148ブラウズ

How Do Static Variables and Methods Work in Python?

Python での静的変数と静的メソッドの作成

Python では、静的変数と静的メソッドは、それぞれクラス変数とクラス メソッドと呼ばれます。これらのエンティティはクラス レベルで定義され、オブジェクトをインスタンス化せずにアクセスおよび操作できます。

クラス変数

クラス変数は、メソッドの外側のクラス定義内で宣言されます。 。これらはクラスのすべてのインスタンス間で共有され、クラス名の後にドットを使用してアクセスできます。例:

class MyClass:
    i = 3

print(MyClass.i)  # Outputs 3

クラス メソッド

クラス メソッドはクラス内で定義される関数ですが、インスタンス メソッドとは異なり、クラス自体を操作します。インスタンス上で。これらは @staticmethod デコレーターを使用して宣言されます。

class MyClass:
    @staticmethod
    def f(arg1, arg2, ...): ...

クラス メソッドは、オブジェクトを使用せずにクラス名を使用して直接呼び出すことができます。これらは通常、ユーティリティ関数や型チェックなど、個々のインスタンスから独立したタスクを実行するために使用されます。

静的メソッドよりもクラスメソッド

一部のプログラマは、静的メソッドよりもクラスメソッドを好みます。最初の引数としてクラス型を受け取ることができるためです。これにより、メソッドがクラス固有の情報にアクセスし、より複雑な操作を実行できるようになります。

class MyClass:
    @classmethod
    def g(cls, arg1, arg2, ...): ...

クラス変数とクラスメソッド:

class MyClass:
    count = 0

    @classmethod
    def get_count(cls):
        return cls.count

このクラスには、作成されたオブジェクトの数を追跡するクラス変数 count とクラスメソッド get_count が含まれています。 count の現在の値を取得します。これらを使用するには、次のように記述します。

MyClass.count += 1  # Increment the class variable
print(MyClass.get_count())  # Call the class method to get the count

クラス変数とメソッドは、クラスのさまざまなインスタンス間で共有データと機能を定義して使用する便利な方法を提供し、コードの編成を簡素化し、コードの再利用性を向上させます。

以上が静的変数と静的メソッドは Python でどのように機能しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。