getting object instead of string from dir()

R

Rominsky

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)

Right now I am understandably getting all types being output as
strings, how do i get the type of the actual objects returned from dir
()?
 
A

Andrew Nelis

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)

Right now I am understandably getting all types being output as
strings, how do i get the type of the actual objects returned from dir
()?

The builtin functions "locals" and "globals" will both return a
dictionary whose keys are the variable names and values are the items
corresponding to those keys;
2.0
 
R

Rominsky

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.
 
S

Steven D'Aprano

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.


Have you considered looking at existing IDEs instead of re-inventing the
wheel? Python even comes with one, IDLE.
 
S

Steve Holden

Steven said:
Have you considered looking at existing IDEs instead of re-inventing the
wheel? Python even comes with one, IDLE.
I realise there are some very competent Python programmers whose primary
environment is IDLE, but I'm afraid I always end up frustrated with it.

I think Rominsky will learn a lot by noodling around in the way he
proposes - he does, after all, confess he is experimenting, and that
sounds to me like a great way to find out a lot in a fairly short time.

Matlab is a very specific environment, and students have told me that
there are pieces of its IDE that they really miss in Python, so this
work may result in something that attracts more users to Python.

regards
Steve
 
A

André

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.  


You might want to have a look at
http://www.physics.ox.ac.uk/users/santoso/Software.WebLab.html

André
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,744
Messages
2,569,479
Members
44,899
Latest member
RodneyMcAu

Latest Threads

Top