By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
444,017 Members | 1,169 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 444,017 IT Pros & Developers. It's quick & easy.

user variables

P: n/a
Sorry this must be really trivial, but I am new to Python...
suppose I defined

is there a command like


which would show



I tried globals(), locals() and vars(), but they all mix my user-defined
variables with system ones... clues? ideas?

thanks in advance,


Jul 18 '05 #1
Share this Question
Share on Google+
1 Reply

P: n/a
>>>>> "user" == user <us**@domain.invalid> writes:
user> I tried globals(), locals() and vars(), but they all mix my
user> user-defined variables with system ones... clues? ideas?

These are the right functions to be thinking about. If I may be so
bold, perhaps you are not asking the right question. What is it you
need to do? You say you want to get the user defined variables. To
what end? Perhaps if you describe what it is you need to do, not how
you plan to do it, someone can offer an insightful solution.

Barring that, would it be helpful to remove the system/module vars by
first saving the keys of locals before user input, eg

from os import * # import a bunch of non user-defined names for testing

def diffkeys(k1, k2):
"return the keys in d1 that are not in d2"
k2d = dict( [(k,1) for k in k2] )
return [k for k in k1 if not k2d.has_key(k)]

def items_for_keys(keys, d):
"return a list of (k,v) pairs for given keys in dict d"
seen = dict( [(k,1) for k in keys] )
return [ (k,v) for k,v in d.items() if seen.has_key(k)]

base = locals().keys()
#now come the user vars
x = 1
y = 2
new = locals().keys()
new.remove('base') #a user var we aren't interested in
print items_for_keys(diffkeys(new, base), locals())

Jul 18 '05 #2

This discussion thread is closed

Replies have been disabled for this discussion.