From 849af0e0846eef0a68af6f1bb806a8193064f511 Mon Sep 17 00:00:00 2001 From: Kyle Ellrott Date: Mon, 21 Mar 2022 11:09:12 -0700 Subject: [PATCH] Adding missing __len__ method to dict objects --- py/dict.go | 4 ++++ py/tests/dict.py | 5 +++++ 2 files changed, 9 insertions(+) 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"