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

Pythonでの演算子のオーバーロード


2次元ベクトルを表すVectorクラスを作成したとすると、plus演算子を使用してそれらを追加するとどうなりますか?おそらくPythonはあなたに怒鳴ります。

ただし、クラスで__add__メソッドを定義してベクトル加算を実行すると、plus演算子は期待どおりに動作します-

#!/usr/bin/python
class Vector:
   def __init__(self, a, b):
      self.a = a
      self.b = b
   def __str__(self):
      return 'Vector (%d, %d)' % (self.a, self.b)
   def __add__(self,other):
      return Vector(self.a + other.a, self.b + other.b)
v1 = Vector(2,10)
v2 = Vector(5,-2)
print v1 + v2

出力

上記のコードを実行すると、次の結果が生成されます-

Vector(7,8)

  1. Pythonでの継承

    この記事では、Python3.xでの継承と拡張クラスについて学習します。またはそれ以前。 継承は実際の関係をうまく表し、再利用性を提供し、推移性をサポートします。開発時間が短縮され、メンテナンスが容易になり、拡張も容易になります。 継承は大きく5つのタイプに分類されます- シングル 複数 階層的 マルチレベル ハイブリッド 上の図に示されているように、継承とは、実際に親クラスのオブジェクトを作成せずに、他のクラスの機能にアクセスしようとするプロセスです。 ここでは、単一の階層型継承の実装について学習します。 単一継承 例 # parent class class Studen

  2. オーバーロード演算子はPythonでどのように機能しますか?

    +演算子を使用して数値を追加すると同時に、文字列を連結できることはわかっています。これが可能なのは、+演算子がintクラスとstrクラスの両方によってオーバーロードされているためです。演算子は基本的にそれぞれのクラスで定義されたメソッドです。演算子のメソッドの定義は、演算子のオーバーロードと呼ばれます。たとえばカスタムオブジェクトで+演算子を使用するには、__add__というメソッドを定義する必要があります。 例 次のコードは、演算子のオーバーロードがどのように機能するかを簡単に理解できるようにします import math class Circle: