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