ホームページ >バックエンド開発 >Python チュートリアル >静的メンバーとクラスメンバーの例を詳しく解説(Python)

静的メンバーとクラスメンバーの例を詳しく解説(Python)

Y2J
Y2Jオリジナル
2017-05-06 14:30:061474ブラウズ

この記事では、主に Python の静的メソッドとクラス メンバーの構文の違いと使用法を詳しくまとめています。必要な方は一緒に見てみましょう。一見。

はじめに

現在Pythonのレベルが使える段階にあるため、私が普段Pythonを使って書いているスクリプトは比較的単純なもので、少し大きめのプロジェクトを書いたことはありません。 Python のクラス、クラス間の組織的な関係、プロジェクト全体でクラスがどのように結合されているかについての理解がまだ不足しています。他の人が書いた Python コードを読んで、エンジニアリングにおける Python の応用を学び、技術レベルを向上させたいと考えています。選択した Python コードは、Python クローラー コード、github アドレスです。このコードは、私の快適ゾーンから外れたコードのレベルをちょうど満たしているため、私の現在のレベルで学習するのに非常に適しています。

Python 2.4 以降、デコレータは主に静的メソッドとクラス メソッドを実装するために使用されます。

デコレーターは@operatorを使用します。例は次のとおりです。

class Example:
 val1 = "Value 1"
 def init(self):
 self.val2 = "Value 2"

 @staticmethod
 def staticmd():
 print("静态方法,无法访问Value1和Value2")

 @classmethod
 def classmd(cls):
 print('类方法,类:'+str(cls)+",val1:"+cls.val1+",无法访问val2的值")


example = Example()
example.staticmd() #实例调用静态方法,无法访问实例变量val1和val2
example.classmd() #实例调用类方法,输出结果:类方法,类:<class &#39;main.Example&#39;>,val1:Value 1,无法访问val2的值
Example.classmd() #类调用类方法,输出结果:类方法,类:<class &#39;main.Example&#39;>,val1:Value 1,无法访问val2的值
example.val1 = "The instance value1 changed"
example.classmd() #类调用类方法,输出结果:类方法,类:<class &#39;main.Example&#39;>,val1:Value 1,无法访问val2的值
Example.val1 = "The class value2 changed"
example.classmd() #类调用类方法,输出结果:类方法,类:<class &#39;main.Example&#39;>,val1:The class value2 changed,无法访问val2的值
Example.classmd() #类调用类方法,输出结果:类方法,类:<class &#39;main.Example&#39;>,val1:The class value2 changed,无法访问val2的值

上記の例から、静的メソッドとクラスメソッドの違いが明確に区別できると思います。

1 つ目は構文の違いです。

  • static メソッドは self パラメーターを渡す必要はありませんが、クラス member メソッド はこのクラスを表す cls パラメーターを渡す必要があります

  • static。メソッドはインスタンスにアクセスできます 変数とクラス変数の間では、クラスのメンバー メソッドはインスタンス変数にはアクセスできませんが、クラス変数にはアクセスできます

使用法の違い:

静的メソッドはクラス属性にアクセスできないため、インスタンス属性は同等です比較的独立したメソッドへ 実際には、メソッドはクラスとは何の関係もありません。このように、静的メソッドはクラスのスコープ内の単なる 関数 です。

【関連おすすめ】

1. Python無料ビデオチュートリアル

3. Pythonオブジェクト指向ビデオチュートリアル

以上が静的メンバーとクラスメンバーの例を詳しく解説(Python)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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