From d08fd6866462a4544a938773285b18ab4d7d0970 Mon Sep 17 00:00:00 2001 From: Paul Sokolovsky Date: Thu, 27 Feb 2014 22:22:04 +0200 Subject: Add basic collections.namedtuple implementation. --- tests/basics/namedtuple1.py | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 tests/basics/namedtuple1.py (limited to 'tests') diff --git a/tests/basics/namedtuple1.py b/tests/basics/namedtuple1.py new file mode 100644 index 000000000..331c7dec1 --- /dev/null +++ b/tests/basics/namedtuple1.py @@ -0,0 +1,40 @@ +from collections import namedtuple + +T = namedtuple("Tup", "foo bar") +# CPython prints fully qualified name, what we don't bother to do so far +#print(T) +t = T(1, 2) +print(t) +print(t.foo, t.bar) + +print(isinstance(t, tuple)) + +try: + t[0] = 200 +except TypeError: + print("TypeError") +try: + t.bar = 200 +except AttributeError: + print("AttribiteError") + +try: + t = T(1) +except TypeError: + print("TypeError") + +try: + t = T(1, 2, 3) +except TypeError: + print("TypeError") + +# Try comma field separator +T2 = namedtuple("TupComma", "foo,bar") +t = T2(1, 2) +print(t) +print(t.foo, t.bar) + +# Try list of fields +# Not implemented so far +#T3 = namedtuple("TupComma", ["foo", "bar"]) +#t = T3(1, 2) -- cgit v1.2.3 From e74f52b76c2be9aefca689e34cd05f8f64be02f8 Mon Sep 17 00:00:00 2001 From: Paul Sokolovsky Date: Thu, 27 Feb 2014 22:49:47 +0200 Subject: namedtuple: Inherit unary/binary ops from tuple base class. --- tests/basics/namedtuple1.py | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'tests') diff --git a/tests/basics/namedtuple1.py b/tests/basics/namedtuple1.py index 331c7dec1..1e194472f 100644 --- a/tests/basics/namedtuple1.py +++ b/tests/basics/namedtuple1.py @@ -5,8 +5,14 @@ T = namedtuple("Tup", "foo bar") #print(T) t = T(1, 2) print(t) +print(t[0], t[1]) print(t.foo, t.bar) +print(len(t)) +print(bool(t)) +print(t + t) +print(t * 3) + print(isinstance(t, tuple)) try: -- cgit v1.2.3