Skip to content

Commit 6ec2c3b

Browse files
committed
fix named tuple bug
1 parent e682141 commit 6ec2c3b

2 files changed

Lines changed: 10 additions & 1 deletion

File tree

Lib/test/test_typing.py

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8468,6 +8468,15 @@ class ThisWontWorkEither(NamedTuple):
84688468
def name(self):
84698469
return __class__.__name__
84708470

8471+
def test_named_tuple_generator_input(self):
8472+
field_names = ["x", "y"]
8473+
field_values = [int, int]
8474+
Point = NamedTuple("Point", zip(field_names, field_values))
8475+
p = Point(1, 2)
8476+
self.assertEqual(p.x, 1)
8477+
self.assertEqual(p.y, 2)
8478+
self.assertEqual(repr(p),"Point(x=1, y=2)")
8479+
84718480

84728481
class TypedDictTests(BaseTestCase):
84738482
def test_basics_functional_syntax(self):

Lib/typing.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3044,7 +3044,7 @@ class Employee(NamedTuple):
30443044
"""
30453045
types = {n: _type_check(t, f"field {n} annotation must be a type")
30463046
for n, t in fields}
3047-
field_names = [n for n, _ in fields]
3047+
field_names = list(types)
30483048
nt = _make_nmtuple(typename, field_names, _make_eager_annotate(types), module=_caller())
30493049
nt.__orig_bases__ = (NamedTuple,)
30503050
return nt

0 commit comments

Comments
 (0)