py: Implement __contains__ special method.
This commit is contained in:
parent
62f7ba7a81
commit
58cbb4d661
@ -384,7 +384,9 @@ STATIC const qstr binary_op_method_name[] = {
|
||||
MP_BINARY_OP_LESS_EQUAL,
|
||||
MP_BINARY_OP_MORE_EQUAL,
|
||||
MP_BINARY_OP_NOT_EQUAL,
|
||||
MP_BINARY_OP_IN,
|
||||
*/
|
||||
[MP_BINARY_OP_IN] = MP_QSTR___contains__,
|
||||
/*
|
||||
MP_BINARY_OP_IS,
|
||||
*/
|
||||
[MP_BINARY_OP_EXCEPTION_MATCH] = MP_QSTR_, // not implemented, used to make sure array has full size
|
||||
|
23
tests/basics/class-contains.py
Normal file
23
tests/basics/class-contains.py
Normal file
@ -0,0 +1,23 @@
|
||||
# A contains everything
|
||||
class A:
|
||||
def __contains__(self, key):
|
||||
return True
|
||||
|
||||
a = A()
|
||||
print(True in a)
|
||||
print(1 in a)
|
||||
print(() in a)
|
||||
|
||||
# B contains given things
|
||||
class B:
|
||||
def __init__(self, items):
|
||||
self.items = items
|
||||
def __contains__(self, key):
|
||||
return key in self.items
|
||||
|
||||
b = B([])
|
||||
print(1 in b)
|
||||
b = B([1, 2])
|
||||
print(1 in b)
|
||||
print(2 in b)
|
||||
print(3 in b)
|
Loading…
Reference in New Issue
Block a user