diff --git a/pympler/asizeof.py b/pympler/asizeof.py index 213f5c5..fe9aad7 100644 --- a/pympler/asizeof.py +++ b/pympler/asizeof.py @@ -638,9 +638,12 @@ def _cell_refs(obj, named): def _namedtuple_refs(obj, named): - '''Return slots but exclude dict + '''Return specific referents of obj-as-sequence and slots but exclude dict. ''' - return _refs(obj, named, '__class__', slots='__slots__') + for r in _refs(obj, named, '__class__', slots='__slots__'): + yield r + for r in obj: + yield r def _gen_refs(obj, named): diff --git a/test/asizeof/test_asizeof.py b/test/asizeof/test_asizeof.py index 210255c..3df84c7 100644 --- a/test/asizeof/test_asizeof.py +++ b/test/asizeof/test_asizeof.py @@ -307,7 +307,7 @@ def inner(): self.assertTrue(size_closure >= size_data, (size_closure, size_data)) def test_namedtuple(self): - '''Test namedtuple __dict__ property isn't included + '''Test values are included but namedtuple __dict__ isn't. ''' from collections import namedtuple Point = namedtuple('Point', ['x', 'y']) @@ -315,6 +315,7 @@ def test_namedtuple(self): size = asizeof.asized(point, detail=1) refs = [ref.name for ref in size.refs] self.assertTrue('__dict__' not in refs, refs) + self.assertTrue('11' in refs, refs) class FunctionTest(unittest.TestCase):