Pythonの新しいスタイルのクラスと古いスタイルのクラスの違い
Python の新しいスタイルのクラスはバージョン 2.2 で導入されました。以前のクラスをクラシック クラスまたは古いスタイルのクラスと呼ぶことができます。
なぜ 2.2 で新しいスタイルのクラスが導入されたのですか?公式の説明は次のとおりです:
クラスと型を統一するため。
2.2 より前、たとえばバージョン 2.1 では、クラスと型が異なっていました。a が ClassA のインスタンスの場合、a.__class__ は「class __main__.ClassA」を返し、type(a) は常に
新しいクラスを導入すると、より多くの組み込みプロパティが導入され、記述子が導入され、プロパティが計算できるなど、他の利点もあります。
前方互換性を確保するために、ユーザー定義クラスはデフォルトでクラシック クラスである必要があります。新しいクラスは、すべてのクラスの基本クラス オブジェクト、またはオブジェクトを継承する新しいクラスから継承する必要があります。
最新の Python (2.7) を使用していますが、一部の機能は古いスタイルのクラスでは動作しないことに注意してください。
そのため、新しいスタイルのクラスを確実に使用するには、2 つの方法があります:
1. メタクラス、クラス モジュール コード __metaclass__ = classname (カスタムの新しいスタイル クラス) の先頭に次のコードを追加します。 )。
2. クラスは、組み込みクラス オブジェクトから直接または間接的に継承します。
古いスタイルのクラスや古いバージョンのクラスと互換性を持たせる必要がない場合は、すべて新しいスタイルのクラスを維持してください。
Python3 では、すべてのクラスが (暗黙的に) オブジェクト クラスのサブクラスであるため、これらの問題は存在しません。
コード例:
class oldClass: #经典类 def __init__( self ): pass class newClass(object): #新类 def __init__( self ): pass c1 = oldClass() c2 = newClass() c1.__class__ # 输出-> <class __main__.oldClass at 0x0137BF10> type(c1) # 输出-> <type 'instance'> c2.__class__ # 输出-><class '__main__.newClass'> type(c2) # 输出-><class '__main__.newClass'>

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

ホットトピック











LinuxターミナルでPythonバージョンを表示する際の許可の問題の解決策PythonターミナルでPythonバージョンを表示しようとするとき、Pythonを入力してください...

fiddlereveryversings for the-middleの測定値を使用するときに検出されないようにする方法

10時間以内にコンピューター初心者プログラミングの基本を教える方法は?コンピューター初心者にプログラミングの知識を教えるのに10時間しかない場合、何を教えることを選びますか...

PythonのPandasライブラリを使用する場合、異なる構造を持つ2つのデータフレーム間で列全体をコピーする方法は一般的な問題です。 2つのデータがあるとします...

UvicornはどのようにしてHTTPリクエストを継続的に聞きますか? Uvicornは、ASGIに基づく軽量のWebサーバーです。そのコア機能の1つは、HTTPリクエストを聞いて続行することです...

Investing.comの反クラウリング戦略を理解する多くの人々は、Investing.com(https://cn.investing.com/news/latest-news)からのニュースデータをクロールしようとします。
