class AndTrigger(Trigger):
def __init__(self,object1,object2):
self.object1 = object1
self.object2 = object2
def evaluate(self,object):
return self.object1.evaluate(self) and self.object2.evaluate(self)
このANDトリガーを実装すると、想定どおりに機能しますが、試行錯誤によってのみ機能させることができました。このクラスで「自己」が何をしているのかわかりません。
これが私が起こっていると思うことです:は__init__
クラスのコンストラクターなので、クラスのインスタンスは作成時にこれを使用します。クラスには2つの属性(object1、object2)があり__init__
、クラスが作成されると、これらの新しい属性は「object1」および「object2」と呼ばれるため、self.object1などに割り当てられることを新しいインスタンスに通知します。
さて、この評価関数は、トリガーで実装されていないレイズを防ぐことになっていますが、それは私が得られないものではありません。このevaluate関数では、AndTriggerのインスタンスと別のオブジェクトの2つの引数があるように見えます。しかし、この他のオブジェクトは?の定義のどこにありevaluate()
ますか?これがどのように機能するかは私にはパズルですが、実際に機能します。