-
Pythonでガベージコレクションはどのように機能しますか?
Pythonは、不要なオブジェクト(組み込み型またはクラスインスタンス)を自動的に削除して、メモリスペースを解放します。 Pythonが定期的に解放し、使用されなくなったメモリのブロックを再利用するプロセスは、ガベージコレクションと呼ばれます。 Pythonのガベージコレクターはプログラムの実行中に実行され、オブジェクトの参照カウントがゼロに達したときにトリガーされます。オブジェクトを指すエイリアスの数が変わると、オブジェクトの参照カウントも変わります。 オブジェクトに新しい名前が割り当てられるか、コンテナ(リスト、タプル、またはディクショナリ)に配置されると、オブジェクトの参照カウントが増
-
Pythonでクラス継承はどのように機能しますか?
クラスの継承 クラスを新たに定義する代わりに、新しいクラス名の後に括弧で囲まれた親クラスをリストすることにより、既存のクラスからクラスを派生させてクラスを作成できます。 子クラスはその親クラスの属性を継承し、それらの属性を子クラスで定義されているかのように使用できます。子クラスは、親のデータメンバーとメソッドをオーバーライドすることもできます。 構文 派生クラスは、親クラスとほとんど同じように宣言されます。ただし、継承する基本クラスのリストは、クラス名の後に示されています- class SubClassName (ParentClass1[, ParentClass2, ...]): &
-
issubclass()関数はPythonでどのように機能しますか?
次のように、複数の親クラスからクラスを派生させることができます- class A: # define your class A ..... class B: # define your class B ..... class C(A, B): # subclass of A and B ..... issubclass()関数を使用して、2つのクラスとインスタンスの関係を確認できます。 たとえば、 issubclass(sub, sup) 指定されたサブ
-
isinstance()関数はPythonでどのように機能しますか?
次のように、複数の親クラスからクラスを派生させることができます- class A: # define your class A ..... class B: # define your class B ..... class C(A, B): # subclass of A and B ..... isinstance()関数を使用して、2つのクラスとインスタンスの関係を確認できます。 isinstance(obj, Class) objがクラスCla
-
クラスがPythonで指定されたスーパークラスのサブクラスであるかどうかを確認するにはどうすればよいですか?
クラスAとBは次のように定義されています- class A(object): pass class B(A): pass Bは、次の2つの方法でAのサブクラスであることが証明できます class A(object):pass class B(A):pass print issubclass(B, A) # Here we use the issubclass() method to check if B is subclass of A print B.__bases__ # Here we check the base classes or super classes of B これによ
-
PythonでAがBのスーパークラスであるかどうかを確認するにはどうすればよいですか?
クラスAとBは次のように定義されています- class A(object): pass class B(A): pass 例 Aは次の2つの方法でBのスーパークラスであることが証明できます class A(object):pass class B(A):pass print issubclass(B, A) # Here we use the issubclass() method to check if B is subclass of A print B.__bases__ # Here we check the base classes or super classes of B 出力
-
クラス属性がPythonの特定のクラスで定義または派生したかどうかを確認するにはどうすればよいですか?
以下のコードは、属性fooがクラスAおよびBで定義または派生したかどうかを示しています。 例 class A: foo = 1 class B(A): pass print A.__dict__ #We see that the attribute foo is there in __dict__ of class A. So foo is defined in class A. print hasattr(A, 'foo') #We see that class A has the attribute but it is
-
Pythonでのクラスと継承の概要
オブジェクト指向プログラミングは、プロジェクトでのコードの冗長性を防ぐために、再利用可能なコードパターンを作成します。リサイクル可能なコードを作成する1つの方法は、あるサブクラスが別の基本クラスのコードを利用する場合の継承です。 継承とは、クラスが別のクラス内で記述されたコードを使用する場合です。 子クラスまたはサブクラスと呼ばれるクラスは、親クラスまたは基本クラスからメソッドと変数を継承します。 ChildサブクラスはParent基本クラスから継承しているため、ChildクラスはParentのコードを再利用でき、プログラマーが使用するコード行を減らし、冗長性を減らすことができます。 派
-
Pythonでスーパークラスからサブクラスを作成するにはどうすればよいですか?
Pythonの組み込み関数である「super」を使用します。これは、初期化のために親クラスを呼び出すための少し優れたメソッドです。次のコードは、「スーパー」の使用法を示しています。 例 # Initializing using just Parent class MySubClass(MySuperClass): def __init__(self): MySuperClass.__init__(self) # Initializing using Parent with super(). class MySu
-
Pythonでメソッドのオーバーロードを使用するにはどうすればよいですか?
メソッドのオーバーロードとは、同じ名前の2つのメソッドを持つことを意味します。 Pythonで同じ名前のメソッドを2つ持つことはできず、その必要もありません。 Pythonでは、メソッドのオーバーロードはできません。異なる機能で同じ関数にアクセスしたい場合は、メソッドのオーバーライドを使用することをお勧めします。
-
Pythonでクラスメソッドをオーバーライドする方法は?
オーバーライドは、その基本クラスの1つによって提供されるメソッドの実装を変更するクラスのプロパティです。 オーバーライドは、継承にその全力を利用させるため、OOPの非常に重要な部分です。クラスをオーバーライドするメソッドを使用することにより、別のクラスを「コピー」して、重複したコードを回避し、同時にその一部を拡張またはカスタマイズすることができます。したがって、メソッドのオーバーライドは継承メカニズムの一部です。 Pythonでは、メソッドのオーバーライドは、子クラスで親クラスのメソッドと同じ名前のメソッドを定義するだけで発生します。オブジェクトでメソッドを定義すると、後者がそのメソッド呼
-
コンストラクターメソッド__init__はPythonでどのように機能しますか?
__ init__ __ init__は、Pythonクラスで予約されているメソッドです。これは、OOPの概念ではコンストラクターとして知られています。このメソッドは、オブジェクトがクラスから作成されたときに呼び出され、クラスがクラスの属性を初期化できるようにします。 「__init__」の使い方は? Carという名前のクラスを作成しているとしましょう。車には、「色」、「モデル」、「速度」などの属性と、「開始」、「加速」、「ギアの変更」などのメソッドを含めることができます。 例 class Car(object): def __init
-
デストラクタメソッド__del__()はPythonでどのように機能しますか?
__del __()メソッドは、デストラクタメソッドとして知られています。オブジェクトへのすべての参照が削除された後に発生する、オブジェクトがガベージコレクションされるときに呼び出されます。 単純なケースでは、これはdel xのような変数を削除した直後、またはxがローカル変数の場合は、関数が終了した直後である可能性があります。特に、循環参照がない限り、標準のPython実装であるCPythonはすぐにガベージコレクションを行います。 Pythonガベージコレクションの唯一の特性は、すべての参照が削除された後に発生することです。したがって、これは必ずしも直後に発生するわけではなく、まったく発
-
repr()関数はPythonオブジェクト指向プログラミングで何をしますか?
Pythonの公式ドキュメントには、オブジェクトの「公式」文字列表現を計算するために__repr __()が使用されていると記載されています。 repr()組み込み関数は、__ repr __()を使用してオブジェクトを表示します。 __repr __()は、オブジェクトの印刷可能な表現を返します。これは、このオブジェクトを作成するための方法の1つです。 __repr __()は開発者にとってより便利ですが、__ str __()はエンドユーザーにとって便利です。 例 次のコードは、__ repr __()の使用方法を示しています。 class Point: def
-
str()関数はPythonオブジェクト指向プログラミングで何をしますか?
__str__メソッド __str__は、__ init__のような特別なメソッドであり、オブジェクトの「非公式」文字列表現を返します。デバッグに役立ちます。 __str__メソッドを使用する次のコードを検討してください class Time: def __str__(self): return '%.2d:%.2d:%.2d' % (self.hour, self.minute, self.second) オブジェクトを出力すると、Pythonはstrメソッドを呼び出します- >>
-
cmp()関数はPythonオブジェクト指向プログラミングで何をしますか?
cmp()関数 cmp(x、y)関数は、2つの引数xとyの値を比較します- cmp(x、y) 戻り値は-です xがyより小さい場合は、負の数。 xがyと等しい場合はゼロ。 xがyより大きい場合は正の数。 組み込みのcmp()関数は通常、値-1、0、または1のみを返します。ただし、同じ呼び出しシーケンスを持つ関数を期待する場所は他にもあり、それらの関数は他の値を返す場合があります。結果の兆候のみを観察するのが最善です。 >>> cmp(2,8) -1 >>> cmp(6,6) 0 >>> cmp(4,1) 1 >>&
-
Pythonでのstr()関数とrepr()関数の説明
Pythonの公式ドキュメントによると、__ repr__はオブジェクトの「公式」文字列表現を検索するために使用され、__str__はオブジェクトの「非公式」文字列表現を検索するために使用されます。 printステートメントとstr()組み込み関数は、__ str__を使用してオブジェクトの文字列表現を表示し、repr()組み込み関数は__repr__を使用してオブジェクトを表示します。 2つの方法が実際に何をするかを理解するために例を見てみましょう。 日時オブジェクトを作成しましょう- >>> import datetime >>> today = dat
-
Pythonの基本オーバーロードメソッドとは何ですか?
Pythonクラスは、オブジェクト指向プログラミングパラダイムのすべての標準機能を提供します。クラス継承メカニズムにより、複数の基本クラスが可能になります。派生クラスは、その基本クラスの任意のメソッドをオーバーライドでき、メソッドは同じ名前の基本クラスのメソッドを呼び出すことができます。
-
オーバーロード演算子はPythonでどのように機能しますか?
+演算子を使用して数値を追加すると同時に、文字列を連結できることはわかっています。これが可能なのは、+演算子がintクラスとstrクラスの両方によってオーバーロードされているためです。演算子は基本的にそれぞれのクラスで定義されたメソッドです。演算子のメソッドの定義は、演算子のオーバーロードと呼ばれます。たとえばカスタムオブジェクトで+演算子を使用するには、__add__というメソッドを定義する必要があります。 例 次のコードは、演算子のオーバーロードがどのように機能するかを簡単に理解できるようにします import math class Circle:  
-
Pythonオブジェクト指向プログラミングでのデータ隠蔽とは何ですか?
Pythonのドキュメントによると、「データの非表示」とは、クライアントを実装(の一部)から分離することです。モジュールの一部のオブジェクトは、モジュールの内部にあり、ユーザーには表示されず、アクセスできない場合があります。そのため、これは依存関係を回避し、同時にセキュリティを提供する方法です。アプリケーションのユーザーは、アプリケーションの使用方法を知ることができますが、アプリケーションがどのように機能するかを知る必要はありません。実際にそうする必要はありません。アプリケーション内の特定のユーザーへのアクセスを防ぐこの方法は、データの非表示と呼ばれます。