Steven D'Aprano wrote:
I would like to generate a new object each time I import a name from a
module, rather than getting the same object each time. For example,
currently I might do something like this:
# Module
count = 0
def factory():
# Generate a unique object each time this is called
global count
count += 1
return "Object #%d" % count
# Calling module
from Module import factory
a = factory() # a == "Object #1"
b = factory() # b == "Object #2"
del factory
I'm looking for a way to hide the generation of objects from the caller,
so I could do something like this:
from Module import factory() as a # a == "Object #1"
from Module import factory() as b # b == "Object #2"
except of course that syntax is illegal.
Why making standard statements do what they're not meant to do ?
You could write
>import Module
>
>a = factory()
>b = factory()
But you already know that.
So what's the purpose of making
from Module import factory as a
from Module import factory as b
return 2 different objects ? If I had to write this code I would expect 'a is
b' to return 'True'.
This is no "don't do that" answer, it's a sincere question: what is the
benefit of your /new/ syntax ?
JM
--
http://mail.python.org/mailman/listinfo/python-list