Python 获取父级 class
Python get parent class
我有一个迷宫 class,我有一个 MazeTilePlacer (MTP) class。 MTP class 实例将在迷宫 class 内创建,并且需要访问迷宫 class 中名为 emptytiles 的变量,定义为 self.emptytiles = []
。如何从 MTP 实例访问父对象来访问这个变量?
您可以通过为 MazeTilePlacer
的每个实例提供对与您的 Maze
对象相同的 emptytiles
列表的引用来处理此问题。 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 结构(即您需要多次访问而无需任何人更改您下面的结构 - 例如 pop,做一些事情,然后不添加任何东西被弹出或附加在两者之间)你必须把它锁起来。
我有一个迷宫 class,我有一个 MazeTilePlacer (MTP) class。 MTP class 实例将在迷宫 class 内创建,并且需要访问迷宫 class 中名为 emptytiles 的变量,定义为 self.emptytiles = []
。如何从 MTP 实例访问父对象来访问这个变量?
您可以通过为 MazeTilePlacer
的每个实例提供对与您的 Maze
对象相同的 emptytiles
列表的引用来处理此问题。 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 结构(即您需要多次访问而无需任何人更改您下面的结构 - 例如 pop,做一些事情,然后不添加任何东西被弹出或附加在两者之间)你必须把它锁起来。