Newbie help- Can multiple instances with multiple names automatically created.
Steven D'Aprano
steven at REMOVE.THIS.cybersource.com.au
Tue Jan 5 01:03:28 EST 2010
On Mon, 04 Jan 2010 21:27:12 -0800, Nav wrote:
> @ Steven....
> "No, you're confused -- the problem isn't with using the global
> namespace.
> The problem is that you don't know what names you want to use ahead of
> time. "
>
> Actually I know what the names would be and how I want to use them.
You said earlier:
"I have a class of let's say empty bottle which can have a mix of two
items. I want to create let's say 30 of these objects which will have
names based on the 2 attributes (apple juice, beer, grape juice, beer,
etc) that I provide from a list."
Your description is confusing to me. What on earth is an empty bottle
which has a mix of two items in it? Surely that means it's not empty any
more? But putting that aside:
"All the objects are a mix of (1 of three alcohols) and (1 of 10
juices), so I don't want to go through typing in the names of all the
objects (which would be totally stupid)."
Right... so your problem isn't that you don't know what the variable
names is, but there are too many to comfortably enumerate in the source
code.
The answer is, again, avoid named variables. Instead of (say):
gin_apple_strawberry = Bottle('gin', 'apple')
gin_apple_orange = Bottle('gin', 'orange')
# etc.
again you should use a list or dict:
bottles = []
for alcohol in ('gin', 'beer', 'wine'):
for fruit in ('apple', 'banana', 'blueberry',
'strawberry', 'orange', 'peach'):
bottles.append(Bottle(alcohol, fruit))
for bottle in bottles:
process(bottle)
--
Steven
More information about the Python-list
mailing list