From 28bff4edb2e906fb00a992a2d3ec795e9a9244a5 Mon Sep 17 00:00:00 2001 From: Manjusaka Date: Thu, 25 Sep 2025 23:24:14 +0800 Subject: [PATCH] fix review idea Co-authored-by: Barney Gale Signed-off-by: Manjusaka --- Lib/pathlib/__init__.py | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/Lib/pathlib/__init__.py b/Lib/pathlib/__init__.py index 498444ee544..9594c43b9bf 100644 --- a/Lib/pathlib/__init__.py +++ b/Lib/pathlib/__init__.py @@ -209,14 +209,12 @@ def __hash__(self): try: return self._hash except AttributeError: - hash_data = self._tail - if self._drv or self._root: - hash_data = [self._drv + self._root] + self._tail - elif self._tail and self.parser.splitdrive(self._tail[0])[0]: - hash_data = ['.'] + self._tail - if self.parser is not posixpath: - hash_data = [part.lower() for part in hash_data] - self._hash = hash(tuple(hash_data)) + if self.parser is posixpath: + self._hash = hash((self.root, tuple(self._tail))) + else: + self._hash = hash((self.drive.lower(), + self.root.lower(), + tuple([part.lower() for part in self._tail]))) return self._hash def __eq__(self, other):