Python
 Computer >> コンピューター >  >> プログラミング >> Python

Pythonの属性とプロパティの違いは何ですか?


Pythonでは、すべてがオブジェクトです。そして、すべてのオブジェクトには属性とメソッドまたは関数があります。属性は、名前、年齢、身長などのデータ変数によって記述されます。

プロパティは、__ get__、__ set__、__delete__メソッドなどのgetter、setter、deleteメソッドを持つ特殊な種類の属性です。

ただし、Pythonには、属性へのゲッター/セッターアクセスを提供するプロパティデコレーターがあります。プロパティは特別な種類の属性です。基本的に、Pythonが次のコードに遭遇したとき:

foo = SomeObject()
print(foo.bar)

fooでバーを検索し、バーを調べて__get __、__ set __、または__delete__メソッドがあるかどうかを確認します。ある場合はプロパティです。プロパティの場合、barオブジェクトを返すだけでなく、__ get__メソッドを呼び出し、そのメソッドが返すものをすべて返します。

Pythonでは、プロパティ関数を使用して、ゲッター、セッター、および削除メソッドを定義できます。 readプロパティだけが必要な場合は、メソッドの上に追加できる@propertyデコレータもあります。

class C(object):
    def __init__(self):
        self._x = None
#C._x is an attribute
@property
    def x(self):
        """I'm the 'x' property."""
        return self._x
# C._x is a property   This is the getter method
@x.setter # This is the setter method
    def x(self, value):
        self._x = value
@x.deleter # This is the delete method
    def x(self):
        del self._x

  1. Tkinter(Python)のroot.destroy()とroot.quit()の違いは何ですか?

    destroy()を呼び出すとき tkinterウィンドウオブジェクトを使用するメソッドは、メインループを終了します ウィンドウ内のすべてのウィジェットを処理して破棄します。 Tkinter destroy() メソッドは主に、バックグラウンドで実行されているインタープリターを強制終了して終了するために使用されます。 ただし、 quit() mainloop()の後でプロセスを停止するために、メソッドを呼び出すことができます。 働き。ボタンオブジェクトを作成することで、両方のメソッドの機能を示すことができます。 例 #Import the required libraries from

  2. Pythonのtkinterとtkinter.ttkのウィジェットの違いは何ですか?

    tkinter.ttk tkinterウィジェットのスタイルを設定するために使用されるモジュールです。 CSSを使用してHTML要素のスタイルを設定するのと同じように、tkinter.ttkを使用してtkinterウィジェットのスタイルを設定します。 tkinterウィジェットとtkinter.ttkの主な違いは次のとおりです。 − Tkinterウィジェットは、ボタン、ラベル、テキスト、スクロールバーなどを追加するために使用されますが、tkinter.ttkは、tkinterウィジェットと比較してさまざまなウィジェットをサポートしています。 Tkinter.ttkはPlac