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

Pythonクラスはどのようにオブジェクトを継承しますか?


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

「オールドスタイル」または「クラシック」スタイルのクラス:基本クラスとしての組み込みタイプはありません-

>>> class OldFoo:      # no base class
...     pass
>>> OldFoo.__bases__
()

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

>>> class NewFoo(object):           # directly inherit from object
...    pass
>>> NewFoo.__bases__
(<type 'object'>,)

ただし、Python 3.xでは、基本クラスとして組み込み型を持つ新しいスタイルクラスのみが許可されています-

ここでのクラス宣言では、クラス名の後に括弧で囲まれたオブジェクトについて言及する必要はありません。ここで、クラスはオブジェクトから暗黙的に継承します。

 >>> class Foo:           # directly inherit from object
...    pass
>>> Foo.__bases__
(<type 'object'>,)

  1. ネストされた文字クラスの減算はPythonでどのように機能しますか?

    ネストされた文字クラスの減算 減算された文字クラス内で完全な文字クラス構文を使用できるため、減算されるクラスからクラスを減算できます。 [0-9- [0-7- [0-3]]]は最初に0-7から0-3を減算し、[0-9-[4-7]]または[0-38-9]を生成します。文字列012389の任意の文字に一致します。 クラス減算は、常に文字クラスの最後の要素です。 [0-9-[4-7]a-d]は有効な正規表現ではありません。 [0-9a-d-[4-7]]と書き直す必要があります。減算はクラス全体で機能します。 ネストされた文字クラスの減算を使用することはできますが、2つのクラスを順番に減算す

  2. Python名前空間を作成するにはどうすればよいですか?

    各パッケージ、モジュール、クラス、関数、およびメソッド関数は、変数名が解決される「名前空間」を所有しています。関数、モジュール、またはパッケージが評価される(つまり、実行が開始される)と、名前空間が作成されます。したがって、名前空間を作成する場合は、関数を呼び出すか、オブジェクトをインスタンス化するか、モジュールをインポートするか、パッケージをインポートするだけです。たとえば、名前空間というクラスを作成できます。そのクラスのオブジェクトを作成すると、基本的に名前空間が作成されます。 例 このクラスでは、名前空間に付加する変数名を渡すこともできます。たとえば、 class Namespace: