我有一個 Maze 類,我有一個 MazeTilePlacer (MTP) 類。MTP 類實體將在 Maze 類中創建,并且需要訪問迷宮類中名為 emptytiles 的變數,定義為self.emptytiles = []. 如何從 MTP 實體訪問父物件以訪問此變數?
uj5u.com熱心網友回復:
您可以通過將參考的每個實體提供給與您的物件MazeTilePlacer相同的emptytiles串列來處理此問題。Maze然后該Maze物件可以將放置圖塊的責任委托給其他物件。
class Maze:
def __init__(self):
self.emptytiles = []
def place_tiles(self):
placer = MazeTilePlacer(emptytiles=self.emptytiles)
placer.do_placements()
class MazeTilePlacer:
def __init__(self, emptytiles):
self.emptytiles = emptytiles
def do_placements(self):
self.emptytiles.append('Another tile my Sir')
maze = Maze()
maze.place_tiles()
print(maze.emptytiles)
如果您想擁有多個瓷磚放置器,您可以為它們提供相同的空瓷磚參考。如果您需要這些并行運行并以執行緒安全的方式操作 emptytiles 結構(即,您需要在沒有任何人更改您下面的結構的情況下進行多次訪問 - 例如彈出,做某事,然后追加而不彈出或追加某些內容在兩者之間)您必須將其包裹在鎖中。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/481948.html
上一篇:讓子類與父類通信的最佳方式是什么
下一篇:如何將物件轉換為另一個物件
