Ich googelte herum, um irgendwelche Anwendungsfälle oder Beispiele dieser Methoden zu finden, aber konnte keine ausführliche Erklärung finden, sie werden nur entlang anderer ähnlicher Methoden aufgelistet. Eigentlich habe ich einen Code auf GitHub durchgesehen und bin auf diese Methoden gestoßen, konnte aber die Verwendung nicht verstehen. Kann jemand bitte eine detaillierte Erklärung dieser Methoden geben? Hier ist der Link von Github Code, wo ich über sie kam: https://github.com/msiemens/tinydb/blob/master/tinydb/queries.pyWie und wo man die __and__, __or__, __invert__ magischen Methoden von Python richtig verwendet
0
A
Antwort
4
Die magischen Methoden __and__
, __or__
und __invert__
werden verwendet, um die Betreiber bzw. a & b
, a | b
und ~a
außer Kraft zu setzen. Das heißt, wenn wir eine Klasse
class QueryImpl(object):
def __and__(self, other):
return ...
dann
a = QueryImpl(...)
b = QueryImpl(...)
c = a & b
äquivalent zu
a = QueryImpl(...)
b = QueryImpl(...)
c = a.__and__(b)
Diese Methoden haben in tinydb
überschrieben diese Syntax zu unterstützen:
>>> db.find(where('field1').exists() & where('field2') == 5)
>>> db.find(where('field1').exists() | where('field2') == 5)
# ^
Siehe auch: