Я искал поиски каких-либо вариантов использования или примеров этих методов, но не смог найти подробного объяснения, они просто перечислены вместе с другими подобными методами. Фактически, я просматривал какой-то код на github и натыкался на эти методы, но не мог понять его использования. Может кто-нибудь, пожалуйста, дайте подробное объяснение этих методов. Это звено GitHub кода, где я наткнулся на них: https://github.com/msiemens/tinydb/blob/master/tinydb/queries.pyКак и где использовать правильные методы магии __and__, __or__, __invert__ Python
0
A
ответ
4
Магические методы __and__
, __or__
и __invert__
используются для переопределения операторов a & b
, a | b
и ~a
соответственно. То есть, если у нас есть класс
class QueryImpl(object):
def __and__(self, other):
return ...
затем
a = QueryImpl(...)
b = QueryImpl(...)
c = a & b
эквивалентно
a = QueryImpl(...)
b = QueryImpl(...)
c = a.__and__(b)
Эти методы переопределены в tinydb
поддерживать этот синтаксис:
>>> db.find(where('field1').exists() & where('field2') == 5)
>>> db.find(where('field1').exists() | where('field2') == 5)
# ^
Посмотрите еще: