クラスのパブリック プロパティの概要
1. 概念
クラスのプライベート属性については前述しましたが、これはクラス内で直接アクセスできない属性です。しかし、直接アクセスできるプロパティが公共プロパティである場合はどうなるでしょうか?あまり。 __init__() コンストラクターのプロパティは基本的に外部からアクセスできますが、パブリック プロパティではありません。では、パブリック属性とは何でしょうか?
定義: パブリック属性と呼ばれる、このクラスに属するすべてのオブジェクトがアクセスできる属性を指します。
2. 属性
2.1 メンバー属性
class Person(object): def __init__(self, name, job, phone, address): self.name = name # 成员属性,属于某个实例对象 self.job = job self.phone = phone self.__address = address def get_private(self): return self.__address def sayhi(self): print("hell,%s" % self.name) p1 = Person('Bigberg', 'Doctor', '8833421', 'hz') p2 = Person('Ashlex', 'Police', '8833232', 'bj')
print(p1.job, p2.job) # 输出 Doctor Police
Person クラスの下に 2 つのオブジェクト p1 と p2 を定義しました。明らかに、p1 が p2 のジョブ属性、つまり警察にアクセスする方法はありません。そして、コンストラクター __init__() 内の self.name などの属性はメンバー属性と呼ばれます。
2.2 パブリック属性
class Person(object): nationality = 'CN' # 定义公有属性 def __init__(self, name, job, phone, address): self.name = name self.job = job self.phone = phone self.address = address def sayhi(self): print("hell,%s" % self.name) p1 = Person('Bigberg', 'Doctor', '8833421', 'hz') p2 = Person('Ashlex', 'Police', '8833232', 'bj') print(p1.nationality) print(p2.nationality) # 输出 CN CN
パブリック属性に関する限り、それにアクセスするすべてのインスタンスオブジェクトによって取得される値は同じです。
3. パブリック属性の特徴
パブリック属性にはアクセスするだけでなく、変更することもできます。
class Person(object): nationality = 'CN' # 定义公有属性 def __init__(self, name, job, phone, address): self.name = name self.job = job self.phone = phone self.address = address def sayhi(self): print("hell,%s" % self.name) p1 = Person('Bigberg', 'Doctor', '8833421', 'hz') p2 = Person('Ashlex', 'Police', '8833232', 'bj') print(Person.nationality) # 调用 公有属性 Person.nationality = 'us' # 改变 公有属性 print(Person.nationality) #输出 CN us
3.1 単一インスタンスのパブリックプロパティの呼び出しと変更
# 依据上例 print("--------Befoer change---------") print(Person.nationality) print(p1.nationality) print(p2.nationality) print("--------after change---------") print(Person.nationality) p1.nationality = 'JP' print(p1.nationality) print(p2.nationality) # 输出
--------変更前--------
CN
CN
CN
-- ------変更後---------
US
JP
US
変更前のp1はよく理解できます。なぜなら、誰もがクラス Person の public 属性の国籍を呼び出しているからです。 p1 と p2 の国籍属性は同じで、両方とも「CN」です。しかし、p1 が public 属性を変更した後、p2 の国籍属性が変更されなかったのはなぜでしょうか。 Person クラスを定義するとき、それは実際にはすでにメモリ内に存在しており、当然、このクラスの public 属性も含まれています。初期インスタンス p1 がクラス person の国籍属性を呼び出すとき、国籍という新しい属性を追加するのではなく、クラス内の国籍のメモリ アドレスを直接参照します。
以下に示すように:
print(id(Person.nationality)) print(id(p1.nationality)) print(id(p2.nationality)) print(Person.nationality, p1.nationality, p2.nationality) #输出 1751236836128 1751236836128 1751236836128 CN CN CN
p1.nationality = 'JP'
# p1.nationality = 'JP' print(id(Person.nationality)) print(id(p1.nationality)) print(id(p2.nationality)) print(Person.nationality, p1.nationality, p2.nationality) #输出 2434579585096 2434579585152 2434579585096 US JP US
以上がクラスのパブリック プロパティの概要の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

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

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

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

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

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

ホットトピック









SyntaxError の代わりに intliteral 属性を取得するには、スペースまたは括弧を使用します。intliteral は Python の数値リテラルの一部です。数値リテラルには、次の 4 つの異なる数値型も含まれます。int(signed integers) - これらは、単に整数または整数と呼ばれることが多く、正の値です。

Gson@SerializedName アノテーションは JSON にシリアル化でき、指定された名前の値をフィールド名として持つことができます。このアノテーションは、Gson インスタンスに設定されているデフォルトのフィールド命名ポリシーを含む、あらゆる FieldNamingPolicy をオーバーライドできます。 GsonBuilder クラスを使用して、さまざまな命名戦略を設定できます。構文@Retention(value=RUNTIME)@Target(value={FIELD,METHOD})public@interfaceSerializedNameExample importcom.google.gson.annotations.*;

Python の dir() 関数: オブジェクトのプロパティとメソッドを表示します。特定のコード サンプルが必要です。 要約: Python は強力で柔軟なプログラミング言語であり、その組み込み関数とツールは開発者に多くの便利な機能を提供します。非常に便利な関数の 1 つは dir() 関数です。これを使用すると、オブジェクトのプロパティとメソッドを表示できます。この記事では、 dir() 関数の使用法を紹介し、具体的なコード例を通じてその機能と使用法を示します。テキスト: Python の dir() 関数は組み込み関数です。

Win11のディスクプロパティが不明な場合はどうすればよいですか?最近、Win11 ユーザーは、コンピュータを使用しているときにシステムによってディスク エラーが発生していることに気付きました。何が起こっているのでしょうか?そしてそれをどうやって解決するのでしょうか?詳細な操作方法を知らない友人も多いと思いますが、Win11 のディスク エラーを解決する手順をエディターが以下にまとめましたので、興味がある方はエディターをフォローして以下をお読みください。 Win11 ディスク エラーを解決する手順 1. まず、キーボードの Win+E キーの組み合わせを押すか、タスクバーのファイル エクスプローラーをクリックします; 2. ファイル エクスプローラーの右側のサイドバーで、側面を見つけてローカル ファイルを右クリックしますディスク (C:)、開いたメニュー項目で [プロパティ] を選択します; 3. ローカル ディスク (C:) の [プロパティ] ウィンドウ、[ツール] に切り替えます。

ウィンドウの左上隅からドキュメントがスクロールされるピクセルを取得する場合は、pageXoffset プロパティと pageYoffset プロパティを使用します。水平ピクセルには pageXoffset を使用します。例 次のコードを実行して、JavaScript で pageXOffset 属性を使用する方法を学習できます - ライブ デモンストレーション<!DOCTYPEhtml><html> <head> <style> &

CSS の Bottom 属性の構文とコード例 CSS では、bottom 属性は要素とコンテナの下部の間の距離を指定するために使用されます。親要素の下部を基準とした要素の位置を制御します。ボトム属性の構文は次のとおりです: element{bottom:value;} ここで、element はスタイルが適用される要素を表し、value は設定されるボトム値を表します。 value にはピクセルなどの特定の長さの値を指定できます

絶望の糸はBlizzard Entertainmentの名作『ハースストーン』に登場するレアカードで、カードパック「ウィズベインのワークショップ」で入手できるチャンスがあります。 100/400の秘術ダストポイントを消費して、ノーマル/ゴールドバージョンを合成できます。ハースストーンの絶望の糸の属性の紹介: ウィズベインのワークショップ カード パックで確率で入手できるか、秘術の粉塵を通じて合成することもできます。レアリティ:レア 種類:呪文 クラス:デスナイト マナ:1 効果:すべてのミニオンに断末魔を与える:すべてのミニオンに1ダメージを与える

Vue.set 関数を使用してプロパティを動的に追加する方法と例 Vue では、既存のオブジェクトにプロパティを動的に追加する場合、通常は Vue.set 関数を使用します。 Vue.set 関数は Vue.js によって提供されるグローバル メソッドであり、プロパティを追加するときに確実に応答性の高い更新を行うことができます。この記事では、Vue.set の使用方法を紹介し、具体的な例を示します。まず、Vue では通常、data オプションを使用してレスポンシブ データを宣言します。
