[Tutor] Global values & import scope

Kent Johnson kent37 at tds.net
Wed Jan 24 12:09:18 CET 2007


Wesley Brooks wrote:
> Dear Users,
> 
> I'm using global values to create a unique ID, or name for each
> instance of a class. If I import the following in one file and test it
> it works fine. If the following class was imported in two different
> files run by the same program would each instance of the class have a
> unique name, or would they only be unique within the scope of the file
> which contains the import of the bellow class?
> 
> itemID = 0
> class AssemblyItem:
>     def __init__(self):
>         global itemID
>         self.ID = "assemblyItem" + str(itemID)
>         itemID += 1

That will work fine. When a module is imported twice, the second import 
received a cached copy of the same module; the module is only 
instantiated once. The variable itemID will just exist in one place, in 
the single instance of the module, and AssemblyItems created from 
different clients will all share the same counter.

Kent



More information about the Tutor mailing list