Ich habe einen mehrteiligen booleschen Ausdruck in einem Stück Python-Code, von denen Teil beinhaltet einen Aufruf an einen Zufallsgenerator und Auswertung einer exponentiellen Summe eines 2d-Array. Da dies tief in verschachtelten Schleifen vergraben ist, möchte ich es vermeiden, diesen letzten Teil zu überprüfen, wenn es überhaupt möglich ist, da es rechenintensiv ist.Reihenfolge der Auswertung von booleschen Ausdruck in Python
if self.B == 0 or (np.sign(self.B) == -sign) or (np.random.rand() < np.exp(-2*sign*self.B*np.sum(cluster))):
do stuff
Wenn einer der beiden ersten Ausdrücke wahr ist, wird der Zufallszahlengenerator noch aufgerufen? Oder ist es garantiert, diese Teile in der richtigen Reihenfolge zu bewerten und zu stoppen, sobald sie einen gefunden hat, der wahr ist?
Ich kann es immer explizit machen, indem ich es aufspalte, aber es scheint etwas, das ich wahrscheinlich sowieso wissen sollte.
Das hätte ich mir erhofft. Vielen Dank! – KBriggs