Python プログラミングにおける @property デコレーターの使用法を説明する例
価値と割り当て
Access クラスには 2 つのメンバー変数 name と age があります。クラスメンバ変数に対する外部操作には主に値の取得と代入が含まれます。単純な値の演算は x=object.var で、単純な代入演算は object.var=value です。
ゲッターとセッターを使用する
上記の単純な値の取得と代入の操作では要件を満たせない場合があります。たとえば、Access の年齢範囲を制限したい場合、上記の単純な割り当て操作を使用するだけでは要件を満たしません。ゲッターとセッターはそのような要件を実装します。
setAge 関数を呼び出して、変数 _age の値の範囲を 30 未満に制限します。
プロパティを使用する
プロパティの定義は次のとおりです:
このうち、fget は値関数、fset は代入関数、fdel は削除関数です。プロパティを使用すると、メンバー変数に対する前述の値制限も実装されます。
上記の定義後、年齢は単純な値の取得と代入の操作のように操作できます。たとえば、
@propertyを使用してください
@property を使用することでも上記のクラスの定義を実現できます。
使用例:
Python2 と Python3 でのプロパティの使用の違い
上記のプロパティの例は、Python3 環境で有効です。 Python2ではプロパティを使用する場合、クラス定義はオブジェクトを継承する必要があります。それ以外の場合、プロパティ割り当て操作は使用できません。
Python2でプロパティを使用する正しい方法:
昔、Python プログラマーのアリスは、お金を表すクラスを作成したいと考えていました。彼女の最初の実装はおそらく次のとおりです:
このクラスは後に Python ライブラリにパッケージ化され、さまざまなアプリケーションでゆっくりと使用されるようになりました。たとえば、別のチームの Python プログラマーである Bob は、Money クラスを次のように使用します。
この方法で使用することに問題はありませんが、コードの保守性に問題が生じます。発見しましたか?
数ヶ月後、あるいは数年後。アリスは、Money クラスの内部実装をリファクタリングして、ドルとセントを記録せず、セントのみを記録したいと考えています。そうすることで、特定の操作がはるかに簡単になるためです。彼女が行う可能性のある変化は次のとおりです:
この変更により 1 つの結果がもたらされます。Money クラスを参照するコードのすべての行を調整する必要があります。幸運なことに、あなたがこのすべてのコードの管理者であり、自分で直接リファクタリングする必要がある場合もあります。しかし、アリスの状況はそれほど良くはありませんでした。多くのチームが彼女のコードを再利用しました。したがって、彼女は彼らのコードベースと自分の変更を調整する必要があり、おそらく特に苦痛で長い正式な非推奨プロセスを経ることさえあるでしょう。
幸いなことに、Alice は、この頭痛の種を回避するためのより良い解決策を知っています。それは、Python の組み込みプロパティ デコレーターを使用することです。 @property は通常、Python メソッドで使用され、属性へのアクセスを効果的にメソッド呼び出しに変えることができます。たとえば、Money クラスを少し脇に置き、人間を表す Person クラスがあると仮定します。
以前使用していたツールに問題があったため、コードスタイルが異なります。 —アールグレイ
full_name メソッドに注意してください。メソッドの宣言は、def ステートメントの上に @property で装飾されている点を除き、何も変わりません。ただし、これにより Person オブジェクトの動作方法が変わります。
full_name はメソッドとして定義されていますが、変数属性を通じてアクセスできることがわかりました。コードの最後の行には () 演算子がありません。full_name メソッドを呼び出しているわけではありません。私たちが行ったことは、いわば、ある種の動的プロパティを作成したことです。
この記事の Money クラスに戻り、Alice はそれに次の変更を加えました。
リーリーそれでは、Bob のコードに対応するどのような変更を加えるべきでしょうか?まったく変える必要はありません!
リーリー
Python でのデコレーターの処理方法により、クラス内で単純な属性を自由に使用できます。状態の管理方法を変更するクラスを作成する場合、@property デコレーターを使用してそのクラス (およびそのクラスのみ) を自信を持って変更できます。これは双方にとって有利なアプローチです。対照的に、Java などの言語では、プログラマはプロパティにアクセスするためのメソッド (getDollars や setCents など) を積極的に定義する必要があります。
最後に、注意事項: このメソッドは、他のプログラマーやチームによって再利用されるコードにとって最も重要です。管理するアプリケーションで Money のようなクラスを作成するだけだと仮定すると、Money のインターフェイスを変更する場合は、独自のコードをリファクタリングするだけで済みます。この場合、上記のように @property デコレータを使用する必要はありません。

ホット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)

ホットトピック











PHPは主に手順プログラミングですが、オブジェクト指向プログラミング(OOP)もサポートしています。 Pythonは、OOP、機能、手続き上のプログラミングなど、さまざまなパラダイムをサポートしています。 PHPはWeb開発に適しており、Pythonはデータ分析や機械学習などのさまざまなアプリケーションに適しています。

PHPはWeb開発と迅速なプロトタイピングに適しており、Pythonはデータサイエンスと機械学習に適しています。 1.PHPは、単純な構文と迅速な開発に適した動的なWeb開発に使用されます。 2。Pythonには簡潔な構文があり、複数のフィールドに適しており、強力なライブラリエコシステムがあります。

PHPは1994年に発信され、Rasmuslerdorfによって開発されました。もともとはウェブサイトの訪問者を追跡するために使用され、サーバー側のスクリプト言語に徐々に進化し、Web開発で広く使用されていました。 Pythonは、1980年代後半にGuidovan Rossumによって開発され、1991年に最初にリリースされました。コードの読みやすさとシンプルさを強調し、科学的コンピューティング、データ分析、その他の分野に適しています。

Pythonは、スムーズな学習曲線と簡潔な構文を備えた初心者により適しています。 JavaScriptは、急な学習曲線と柔軟な構文を備えたフロントエンド開発に適しています。 1。Python構文は直感的で、データサイエンスやバックエンド開発に適しています。 2。JavaScriptは柔軟で、フロントエンドおよびサーバー側のプログラミングで広く使用されています。

PythonコードをSublimeテキストで実行するには、最初にPythonプラグインをインストールし、次に.pyファイルを作成してコードを書き込み、Ctrl Bを押してコードを実行する必要があります。コードを実行すると、出力がコンソールに表示されます。

Visual Studioコード(VSCODE)でコードを作成するのはシンプルで使いやすいです。 VSCODEをインストールし、プロジェクトの作成、言語の選択、ファイルの作成、コードの書き込み、保存して実行します。 VSCODEの利点には、クロスプラットフォーム、フリーおよびオープンソース、強力な機能、リッチエクステンション、軽量で高速が含まれます。

Golangは、パフォーマンスとスケーラビリティの点でPythonよりも優れています。 1)Golangのコンピレーションタイプの特性と効率的な並行性モデルにより、高い並行性シナリオでうまく機能します。 2)Pythonは解釈された言語として、ゆっくりと実行されますが、Cythonなどのツールを介してパフォーマンスを最適化できます。

メモ帳でPythonコードを実行するには、Python実行可能ファイルとNPPEXECプラグインをインストールする必要があります。 Pythonをインストールしてパスを追加した後、nppexecプラグインでコマンド「python」とパラメーター "{current_directory} {file_name}"を構成して、メモ帳のショートカットキー「F6」を介してPythonコードを実行します。
