diff --git a/py/dict.go b/py/dict.go index 4f277c47..1710b7da 100644 --- a/py/dict.go +++ b/py/dict.go @@ -114,6 +114,10 @@ func (a StringDict) M__str__() (Object, error) { return a.M__repr__() } +func (a StringDict) M__len__() (Object, error) { + return Int(len(a)), nil +} + func (a StringDict) M__repr__() (Object, error) { var out bytes.Buffer out.WriteRune('{') diff --git a/py/tests/dict.py b/py/tests/dict.py index 2bbcd27e..cb14dbc2 100644 --- a/py/tests/dict.py +++ b/py/tests/dict.py @@ -54,4 +54,9 @@ assert a.__eq__({'a': 'b'}) == True assert a.__ne__({'a': 'b'}) == False +doc="__len__" +a = {"a": "1", "b": "2"} +assert a.__len__() == 2 +assert len(a) == 2 + doc="finished"