getting object instead of string from dir()

Rominsky john.rominsky at gmail.com
Wed Dec 17 20:52:17 CET 2008


On Dec 17, 10:59 am, Christian Heimes <li... at cheimes.de> wrote:
> Rominsky schrieb:
>
> > I am trying to use dir to generate a list of methods, variables, etc.
> > I would like to be able to go through the list and seperate the
> > objects by type using the type() command, but the dir command returns
> > a list of strings.  When I ask for the type of an element, the answer
> > is always string.  How do I point at the variables themselves.  A
> > quick example is:
>
> > a = 5
> > b = 2.0
> > c = 'c'
>
> > lst = dir()
>
> > for el in lst:
> >     print type(el)
>
> for name, obj in vars().iteritems():
>     print name, obj
>
> Christian

I do have some understanding of the pythonic methodology of
programming, though by far I still don't consider myself an expert.
The problem at hand is that I am coming from a matlab world and trying
to drag my coworkers with me.  I have gotten a lot of them excited
about using python for this work, but the biggest gripe everytime is
they want their matlab ide.  I am trying to experiment with making
similar pieces of the ide, in particular I am working on the workspace
window which lists all the current variables in the namespace, along
with their type, size, value, etc....  I am trying to create a python
equivalent.  I can get dir to list all the variables names in a list
of strings, but I am trying to get more info them.  hence the desire
to do a type command on them.  I like the locals and globals commands,
but I am still trying to get more info.  I have started using the eval
command with the strings, which is working, but I am curious if there
is a better or more elegant way of getting the info.  The eval example
would be something like:

a = 5
b = 2.0
c = 'c'

lst = dir()

for el in lst:
   print el + '\t' + str(eval('type(%s)'%el))

It works, now I am curious if there is a better way.



More information about the Python-list mailing list