Pythonのクラス変数とインスタンス変数の違い
Python のクラス変数とインスタンス変数
Python には、クラス変数とインスタンス変数の 2 種類の変数があります。これら 2 種類の変数の違いを理解することは、効率的で体系化されたコードを作成するために重要です。これは他の言語とは少し異なります。
クラス変数
クラス変数は静的変数とも呼ばれ、クラスのすべてのインスタンスによって共有される変数です。これらはメソッドやコンストラクターの外部で定義され、特定のインスタンスではなくクラス自体に関連付けられます。
クラス変数を宣言するには、クラス定義内で = 演算子を使用して値を代入するだけです。以下に例を示します:
class MyClass: class_variable = "This is a class variable" print(MyClass.class_variable) # Output: This is a class variable obj1 = MyClass() obj2 = MyClass() print(obj1.class_variable) # Output: This is a class variable print(obj2.class_variable) # Output: This is a class variable
クラス変数はクラスのすべてのインスタンスで共有されることに注意してください。 1 つのインスタンスでクラス変数の値を変更すると、他のすべてのインスタンスにも影響します。
インスタンス変数
一方、インスタンス変数は、クラスの各インスタンスに固有の変数です。これらはクラスのインスタンスが作成されるときに作成され、その特定のインスタンスに関連付けられます。
インスタンス変数を宣言するには、クラスのメソッドまたはコンストラクター内でインスタンス変数を定義する必要があります。以下に例を示します:
class MyClass: def __init__(self, instance_variable): self.instance_variable = instance_variable obj1 = MyClass("obj1 instance variable") print(obj1.instance_variable) # Output: obj1 instance variable obj2 = MyClass("obj2 instance variable") print(obj2.instance_variable) # Output: obj2 instance variable
この例では、instance_variable は MyClass クラスのインスタンス変数です。これは __init__ (コンストラクター) メソッドで初期化され、self キーワードを使用してアクセスできます。
クラスの各インスタンスには、インスタンス変数の独自のコピーがあることに注意してください。 1 つのインスタンスでインスタンス変数の値を変更しても、他のインスタンスの値には影響しません。
違いと用途
クラス変数とインスタンス変数の主な違いは、クラス変数はクラスのすべてのインスタンスで共有されるのに対し、インスタンス変数は各インスタンスに固有であることです。
クラス変数は、クラスのすべてのインスタンス間でデータを共有する場合に便利です。たとえば、クラス変数を使用して、作成されたインスタンスの数を追跡したり、すべてのインスタンスで使用される定数値を保存したりできます。
一方、インスタンス変数は、各インスタンスに固有のデータを保存する場合に便利です。たとえば、インスタンス変数を使用して、人の名前や年齢を保存できます。
この記事が Python のクラス変数とインスタンス変数の理解に役立つことを願っています。他にご質問がございましたら、お知らせください。
以上がPythonのクラス変数とインスタンス変数の違いの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











LinuxターミナルでPythonバージョンを表示する際の許可の問題の解決策PythonターミナルでPythonバージョンを表示しようとするとき、Pythonを入力してください...

fiddlereveryversings for the-middleの測定値を使用するときに検出されないようにする方法

PythonのPandasライブラリを使用する場合、異なる構造を持つ2つのデータフレーム間で列全体をコピーする方法は一般的な問題です。 2つのデータがあるとします...

UvicornはどのようにしてHTTPリクエストを継続的に聞きますか? Uvicornは、ASGIに基づく軽量のWebサーバーです。そのコア機能の1つは、HTTPリクエストを聞いて続行することです...

10時間以内にコンピューター初心者プログラミングの基本を教える方法は?コンピューター初心者にプログラミングの知識を教えるのに10時間しかない場合、何を教えることを選びますか...

Investing.comの反クラウリング戦略を理解する多くの人々は、Investing.com(https://cn.investing.com/news/latest-news)からのニュースデータをクロールしようとします。
