Victor Subervi wrote:

(NB : answering to the OP - the post didn't show up on clpy)

Hi;
I have the following code that execute without a problem:

Fine. But it fails to execute here - ImportError on the 3rd line ("options"), NameErrors on the 4th line ("addStore") and 5th line ("optionTables").

import sys,os
sys.path.append(os.getcwd())
import options
storesTables = []

OT, but the official naming convention in Python is all_lower_with_underscores.

junkStores = string.join(addStore(), ', ')

junkStores = ", ".join(addStore())

for table in optionsTables():

OT again, but a general (not python-specific) naming rule is to use nouns for variables and verbs for functions. I almost failed to spot the parens after "optionsTables". "getOptionsTables" or something like this would make your intent more obvious IM(NS)HO.

  if table not in ('particulars', junkStores):

I dont know for sure what junkStores looks like at this point, but given the call to string.join, chances are this test doesn't work as expected - cf the following snippet:

"""
>>> foo = ("bar", "baaz, back")
>>> "bar" in foo
True
>>> "baaz" in foo
False
>>>
"""

    storesTables.append(table)
for table in storesTables:


You don't need two loops here - you could as well proceed as you go, ie:


for table in optionsTables():
   if pass_some_test(table):
       proceed_with(table)


  try:
    fn = getattr(options, table)
    print fn()
  except:
    pass

AAAARRRGHHH ! NO ! DONT ! EVER ! DO ! THAT !

You have to either *properly* handle and exception OR let it propagate. For the record, even sys.exit is implemented as an exception.


I need to change the obvious line to this or something similar (that actually works):

    fn = getattr(options, '%s("names")' % table)

That is, I need to pass the variable "names" to each table as it is called.

How does this relate to the above line of code ???????

It really looks like you're programming by accident (IOW : try anything until it seems to "work", but without any understanding of what your code is *really* doing....)

How do I do this?

If the question is "how do I pass a variable to a function", then you probably didn't write the above code and shouldn't even touch it before you learn CS101. Else, please explain more exactly what you're trying to do - would be better with an executable, self-contained example.

--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to