diff --git a/Lib/test/test_typing.py b/Lib/test/test_typing.py index b212b523048809..ec5aa33f22f6be 100644 --- a/Lib/test/test_typing.py +++ b/Lib/test/test_typing.py @@ -4232,7 +4232,7 @@ class C(Generic[T]): pass self.assertEqual(get_args(Union[int, Callable[[Tuple[T, ...]], str]]), (int, Callable[[Tuple[T, ...]], str])) self.assertEqual(get_args(Tuple[int, ...]), (int, ...)) - self.assertEqual(get_args(Tuple[()]), ((),)) + self.assertEqual(get_args(Tuple[()]), ()) self.assertEqual(get_args(Annotated[T, 'one', 2, ['three']]), (T, 'one', 2, ['three'])) self.assertEqual(get_args(List), ()) self.assertEqual(get_args(Tuple), ()) diff --git a/Lib/typing.py b/Lib/typing.py index dd68e71db1558c..6227ad75469b33 100644 --- a/Lib/typing.py +++ b/Lib/typing.py @@ -1218,9 +1218,11 @@ def __init__(self, origin, args, *, inst=True, name=None, super().__init__(origin, inst=inst, name=name) if not isinstance(args, tuple): args = (args,) - self.__args__ = tuple(... if a is _TypingEllipsis else - () if a is _TypingEmpty else - a for a in args) + if args == (_TypingEmpty,): + self.__args__ = () + else: + self.__args__ = tuple(... if a is _TypingEllipsis else + a for a in args) self.__parameters__ = _collect_parameters(args) self._paramspec_tvars = _paramspec_tvars if not name: