Reputation: 1125
I've got a class named Player and there will be 200-300 instances of this class. There is a function within this class called Move and this function requires knowledge of the map.
I also have a class named Map with 1-2 instances. What is the best way to feed an instance of Map into the Player instances?
I just ask because if i feed it to the instance upon Player init so I can access the instance via self.map - won't that be creating hundreds of copies of the Map instance (one for each instance of Player)?
For all I know this could be the standard way of doing it but I have a nagging feeling that this isn't proper.
Thanks
Upvotes: 0
Views: 162
Reputation: 48546
Nothing in Python is ever implicitly copied. Whenever you do x = y
, whether that's a function call or a variable/element/attribute assignment, x
and y
afterwards refer to the same object.
I see two pitfalls with your plan, though:
move()
, instead.Upvotes: 1
Reputation: 6919
If you pass the Map
to the Player
at init this just passes a reference, not a copy. You will not create redundant instances of Map
this way, and it's the best way to do it.
Upvotes: 1