Re: class version of func_globals?
29-12-2009 samwyse wrote: On Dec 29, 5:18 am, Dave Angel wrote: samwyse wrote: > Is there any way to get the global namespace of the module in which a > class was defined? Answers for both Python 2.x and 3.x will be > cheerfully accepted. I don't know if it's the same in general, but consider the following sequence in 2.6: import sys class MyClass(object): pass print "class--", dir(MyClass) print "module--", dir(MyClass.__module__) mod = sys.modules[MyClass.__module__] print mod print "globals--", dir(mod) DaveA Excellent! Exactly what I wanted, but wasn't clever enough to figure out for myself. Thank you very much. But dir(mod) gives you only names, not objects (though, of course, you can get them "manually" with getattr(mod, name)). To get from a class the same you get from function using func_globals (i.e. dictionary with names as keys and objects as values), use: mod = sys.modules[MyClass.__module__] # (as above) vars(mod) # or mod.__dict__, though vars(mod) seems to me more elegant Cheers, *j -- Jan Kaliszewski (zuo) -- http://mail.python.org/mailman/listinfo/python-list
Re: class version of func_globals?
On Dec 29, 5:18 am, Dave Angel wrote: > samwyse wrote: > > Is there any way to get the global namespace of the module in which a > > class was defined? Answers for both Python 2.x and 3.x will be > > cheerfully accepted. > > I don't know if it's the same in general, but consider the following > sequence in 2.6: > > import sys > > class MyClass(object): > pass > > print "class--", dir(MyClass) > print "module--", dir(MyClass.__module__) > mod = sys.modules[MyClass.__module__] > print mod > print "globals--", dir(mod) > > DaveA Excellent! Exactly what I wanted, but wasn't clever enough to figure out for myself. Thank you very much. -- http://mail.python.org/mailman/listinfo/python-list
Re: class version of func_globals?
samwyse wrote: Is there any way to get the global namespace of the module in which a class was defined? Answers for both Python 2.x and 3.x will be cheerfully accepted. I don't know if it's the same in general, but consider the following sequence in 2.6: import sys class MyClass(object): pass print "class--", dir(MyClass) print "module--", dir(MyClass.__module__) mod = sys.modules[MyClass.__module__] print mod print "globals--", dir(mod) DaveA -- http://mail.python.org/mailman/listinfo/python-list
class version of func_globals?
Is there any way to get the global namespace of the module in which a class was defined? Answers for both Python 2.x and 3.x will be cheerfully accepted. -- http://mail.python.org/mailman/listinfo/python-list