There are two modules (say model.py and piece.py) which has methods need to refer to each other module's methods. I saw in a book using the way below, by assigning one (the Model) object to an attribute of the other (the Piece) bject. ------------- ##model.py import piece ... class Model(dict): ... def all_occupied_positions(self): ...
def reset_to_initial_locations(self): self.clear() for position, value in START_PIECES_POSITION.items(): self[position] = piece.create_piece(value) self[position].model = self ... ##piece.py ... def create_piece(value): # Note: it's a function ... return eval(...) # the returned object is a Piece object class Piece(): ... def moves_available(self): model = self.model ... if item not in model.all_occupied_positions(): ... ... ----------- Is it a common way of doing this? Why the author use the same module name "model" for those attribute and local names? Is it a good idea or bad? --Jach -- https://mail.python.org/mailman/listinfo/python-list