我正試圖創建一個變數的起始副本,我想在最后與被處理的變數進行比較。以下是我目前的情況:
def sudoku_solver(sudoku)。
global start_sudoku
start_sudoku = copy.deepcopy(sudoku)
解決方案(sudoku)
......
我試圖將其定義為一個全域變數,因為我有第二個def函式用來處理解決方案,最后我想比較兩個解決方案是否相同:
def self.solution(sudoku):
......
if (len(sudoku) == len(start_sudoku)) == True。
if possible(y, x, n)。
......
def self.possible(y, x, n):
然而,當我到了代碼的最后,這兩個專案總是相同的。我檢查了一下,ID是不同的,但是它們最后總是一樣的。全域變數如何才能保持獨立于第一個變數,并且只保持第一個視圖的資訊?
uj5u.com熱心網友回復:
你的邏輯表明,你需要狀態,這就是類的作用。使用類是比處理全域變數更干凈的方法。
class SudokuSolver。
def __init__(self, sudoku):
self.start_sudoku = copy.deepcopy(sudoku)
self.solution(sudoku)
...
def solution(self, sudoku)。
...
if len(sudoku) == len(self.start_sudoku) 。
if self.possible(y, x, n):
...
def possible(self, y, x, n)。
...
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/322431.html
標籤:
上一篇:對串列中的每個陣列進行求和
