From f7b6fb053f64f05cc8de756ef1327f3614f45022 Mon Sep 17 00:00:00 2001 From: Eryn Wells Date: Wed, 11 Oct 2017 19:42:11 -0700 Subject: [PATCH] Memoize possible_values set --- sudoku/__init__.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/sudoku/__init__.py b/sudoku/__init__.py index 701ba39..fd29b5f 100644 --- a/sudoku/__init__.py +++ b/sudoku/__init__.py @@ -20,6 +20,7 @@ class Sudoku: else: self._board = bytearray(sz4) self._clues = frozenset() + self._possible_values = None @property def size(self): @@ -62,7 +63,9 @@ class Sudoku: The set of valid values for any grid square. This method does not account for values made invalid by already being present in a peer of a given square. ''' - return set(range(1, self.row_size + 1)) + if not self._possible_values: + self._possible_values = set(range(1, self.row_size + 1)) + return self._possible_values @property def rows(self):