ホームページ バックエンド開発 Python チュートリアル Pythonのクラス変数とメンバー変数の使用例チュートリアル

Pythonのクラス変数とメンバー変数の使用例チュートリアル

Jun 16, 2016 am 08:42 AM
python メンバー変数 使用法

この記事では、Python のクラス変数とメンバー変数の使い方をサンプル形式で説明しており、Python プログラミングの参考になります。皆さんの参考に共有してください。詳細は以下のとおりです。

まず次のコードを見てください:

class TestClass(object):
  val1 = 100
  
  def __init__(self):
    self.val2 = 200
  
  def fcn(self,val = 400):
    val3 = 300
    self.val4 = val
    self.val5 = 500 
 if __name__ == '__main__':
  inst = TestClass()
   
  print TestClass.val1
  print inst.val1
  print inst.val2
  print inst.val3
  print inst.val4  
  print inst.val5

ログイン後にコピー

ここで、val1 はクラス変数であり、クラス名によって直接呼び出すことも、オブジェクトによって呼び出すこともできます。 val2 は、クラスのオブジェクトによって呼び出すことができるメンバー変数です。ここで、self の意味はインスタンス オブジェクトを表すことであるため、メンバー変数は self. の形式で指定する必要があることがわかります。 val3 はメンバー変数ではなく、関数 fcn 内の単なるローカル変数です。 val4 と val5 はどちらもメンバー変数ではありませんが、self. として指定されますが、コンストラクターでは初期化されません。

次のコードをもう一度見てください (# 記号の後のコードが実行結果です):

Python のクラス変数は C++ の静的変数とは異なり、クラスのすべてのオブジェクトで共有されないことがわかります。
inst1 = TestClass()
inst2 = TestClass()

print TestClass.val1 # 100
print inst1.val1   # 100

inst1.val1 = 1000  
print inst1.val1   # 1000
print TestClass.val1 # 100

TestClass.val1 =2000 
print inst1.val1   # 1000
print TestClass.val1 # 2000

print inst2.val1   # 2000   

inst3 = TestClass() 
print inst3.val1   # 2000

ログイン後にコピー
クラス自体には独自のクラス変数があります (メモリに保存されます)。TestClass クラスのオブジェクトが構築されると、現在のクラス変数のコピーがオブジェクトに与えられます。オブジェクトをコピーすると、クラス変数の値が になります。さらに、オブジェクトを介してクラス変数を変更しても、誰もが独自のコピーを持っているため、他のオブジェクトのクラス変数の値には影響しません。クラス自体が所有するクラス変数の値には影響しません。クラス自体が所有するクラス変数の値は、クラス自体のみが変更できます

この記事で説明した例が、Python でのクラス変数とメンバー変数の使用法を誰もが理解し、習得するのに役立つことを願っています。

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

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

あるデータフレームの列全体を、Python内の異なる構造を持つ別のデータフレームに効率的にコピーする方法は? あるデータフレームの列全体を、Python内の異なる構造を持つ別のデータフレームに効率的にコピーする方法は? Apr 01, 2025 pm 11:15 PM

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

Pythonスクリプトは、特定の場所のカーソル位置への出力をどのようにクリアしますか? Pythonスクリプトは、特定の場所のカーソル位置への出力をどのようにクリアしますか? Apr 01, 2025 pm 11:30 PM

Pythonスクリプトは、特定の場所のカーソル位置への出力をどのようにクリアしますか? Pythonスクリプトを書くときは、以前の出力をカーソル位置にクリアするのが一般的です...

文字列を介してオブジェクトを動的に作成し、Pythonでメソッドを呼び出す方法は? 文字列を介してオブジェクトを動的に作成し、Pythonでメソッドを呼び出す方法は? Apr 01, 2025 pm 11:18 PM

Pythonでは、文字列を介してオブジェクトを動的に作成し、そのメソッドを呼び出す方法は?これは一般的なプログラミング要件です。特に構成または実行する必要がある場合は...

Pythonサブプロセスモジュールは、WMIC DataFileコマンドの実行に失敗します。それを解決する方法は? Pythonサブプロセスモジュールは、WMIC DataFileコマンドの実行に失敗します。それを解決する方法は? Apr 01, 2025 pm 08:48 PM

Pythonのサブプロセスモジュールを使用してWMICを実行します...

PythonおよびOCRテクノロジーを使用して、複雑な検証コードをクラックしようとする方法は? PythonおよびOCRテクノロジーを使用して、複雑な検証コードをクラックしようとする方法は? Apr 01, 2025 pm 10:18 PM

毎日のネットワークインタラクションでPythonを使用したクラッキング検証コードの調査、検証コードは、自動化されたプログラムの悪意のある操作を防ぐための一般的なセキュリティメカニズムです...

uvicornは、serving_forever()なしでhttpリクエストをどのように継続的に聞いていますか? uvicornは、serving_forever()なしでhttpリクエストをどのように継続的に聞いていますか? Apr 01, 2025 pm 10:51 PM

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

GoまたはRustを使用してPythonスクリプトを呼び出して、真の並列実行を実現する方法は? GoまたはRustを使用してPythonスクリプトを呼び出して、真の並列実行を実現する方法は? Apr 01, 2025 pm 11:39 PM

GoまたはRustを使用してPythonスクリプトを呼び出して、真の並列実行を実現する方法は?最近、私はPythonを使用しています...

PythonインタープリターはLinuxシステムで削除できますか? PythonインタープリターはLinuxシステムで削除できますか? Apr 02, 2025 am 07:00 AM

Linux Systemsに付属するPythonインタープリターを削除する問題に関して、多くのLinuxディストリビューションは、インストール時にPythonインタープリターをプリインストールし、パッケージマネージャーを使用しません...

See all articles