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

Pythonの古いスタイルと新しいスタイルのクラスの違いは何ですか?


Python 2.xには、基本クラスとしての組み込み型の有無に応じて、2つのスタイルのクラスがあります-

"classic" style or old style classes have no built-in type as a base class:
>>> class OldSpam:      # no base class
...     pass
>>> OldSpam.__bases__
()

「新しい」スタイルクラス:基本クラスとして組み込み型があります。つまり、直接的または間接的に、基本クラスとしてオブジェクトがあります-

>>> class NewSpam(object):           # directly inherit from object
...    pass
>>> NewSpam.__bases__
(<type 'object'>,)
>>> class IntSpam(int):              # indirectly inherit from object...
...    pass
>>> IntSpam.__bases__
(<type 'int'>,)
>>> IntSpam.__bases__[0].__bases__   # ... because int inherits from object
(<type 'object'>,)

クラスを書くときは、常に新しいスタイルのクラスに行きたいと思うでしょう。そうすることの利点はたくさんあり、それらのいくつかをリストアップする-

記述子のサポート。具体的には、記述子-

を使用して次の構成が可能になります。

classmethod −インスタンスではなく暗黙の引数としてクラスを受け取るメソッド。

staticmethod −最初の引数として暗黙の引数selfを受け取らないメソッド。

プロパティとプロパティ:属性の取得、設定、削除を管理するための関数を作成します。

Python 3.xは、暗黙的に新しいスタイルクラスのみをサポートします。クラス宣言の括弧内にオブジェクトという単語を記載する必要はありません。


  1. TkinterのTkクラスとトップレベルクラスの違いは何ですか?

    Tkinterウィンドウは、 Tkを初期化することによって作成されます 最初にオブジェクト。これは、アプリケーションのインスタンス化に役立つTkinterアプリケーションの最小限の部分です。 Tk すべてのウィジェットが配置されるアプリケーションウィンドウなど、アプリケーションの基本的な構成要素を構築するのに役立ちます。 ただし、トップレベルクラス メインアプリケーションの内部ウィジェットを介して通信するのに役立ちます。トップレベルクラスの例の1つは、トップレベルです。 アプリケーションのメインウィンドウ以外の子ウィンドウを表示するウィンドウ。トップレベルウィンドウは、ウィジェットや機能

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

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