[EMAIL PROTECTED] a écrit : > Hey, > > I am trying to write a function that takes an arbitrary number of > arguments and does one of two things. If the variable is a key in a > dictionary, it prints the key and its value. Otherwise, if any of the > variables isn't in the dictionary, the function prints the variable's > name and value. > > Here is what I have so far: > > globals = {}
globals() is a builtin function, you should no shadow it. > HOME_DIR = "The user's home directory" > SHELL = "The user's shell" > > def someFunction(): > someString = "This is a test" > globals[VERBOSE] = True > globals[HOME_DIR] = os.getenv("HOME") > globals[SHELL] = os.getenv("SHELL") > > printVerbose(someString, HOME_DIR, SHELL) -> printVerbose(HOME_DIR, SHELL, someString=someString) > def printVerbose(*args): def printVerbose(*args, **kwargs): > if VERBOSE in globals: > for a in args: > if a in globals: > value = globals[a] for k, v in kwargs: > print "%s: %s" % (k, v) > (snip) > I've been told on #python that there isn't a way to get a variable's > name. I hope this isn't so. It is so. In fact, there is nothing like a 'variable' in Python. What we have are names bound to objects. Names 'knows' what objects are bound to them, but objects knows *nothing* about names they are bound to. -- http://mail.python.org/mailman/listinfo/python-list