Skip to content

Commit c5b8c68

Browse files
authored
dict: Implement __contains__ of dict (#65)
1 parent 749f0be commit c5b8c68

File tree

2 files changed

+17
-0
lines changed

2 files changed

+17
-0
lines changed

py/dict.go

+12
Original file line numberDiff line numberDiff line change
@@ -174,3 +174,15 @@ func (a StringDict) M__ne__(other Object) (Object, error) {
174174
}
175175
return True, nil
176176
}
177+
178+
func (a StringDict) M__contains__(other Object) (Object, error) {
179+
key, ok := other.(String)
180+
if !ok {
181+
return nil, ExceptionNewf(KeyError, "FIXME can only have string keys!: %v", key)
182+
}
183+
184+
if _, ok := a[string(key)]; ok {
185+
return True, nil
186+
}
187+
return False, nil
188+
}

py/tests/dict.py

+5
Original file line numberDiff line numberDiff line change
@@ -28,4 +28,9 @@
2828
if k == "c":
2929
assert v == 5.5
3030

31+
doc="__contain__"
32+
a = {'hello': 'world'}
33+
assert a.__contains__('hello')
34+
assert not a.__contains__('world')
35+
3136
doc="finished"

0 commit comments

Comments
 (0)