469,338 Members | 8,430 Online
Bytes | Developer Community
New Post

Home Posts Topics Members FAQ

Post your question to a community of 469,338 developers. It's quick & easy.

Pivy problem and some other stuff

Hy Guys

Did anyone manage to install and use Pivy. I'm trying it and cant come
closer to the goal I get the message:
Please set the COIN3DDIR environment variable to your Coin root
directory! ** Aborting **

Familiar to anyone?

And there is anoher question in my mind.
Is there a way to make a list in python which contains a series of
functions. I did'n try it. Something like:
>>>def a():
return 1
>>>def b():
return 2
>>>def c():
return 3
>>>def d():
return 4
>>list=[a(),b(),c(),d()]
list
[1,2,3,4]

I kow that for this kind of stuff this in not neccesarry, but for
other suff it, gets interesting.

Aug 30 '07 #1
7 913
On Thu, 30 Aug 2007 19:21:47 +0000, azrael wrote:
And there is anoher question in my mind.
Is there a way to make a list in python which contains a series of
functions. I did'n try it. Something like:
Why don't you just try!?
>>>>def a():
return 1
>>>>def b():
return 2
>>>>def c():
return 3
>>>>def d():
return 4
>>>list=[a(),b(),c(),d()]
list
[1,2,3,4]
This isn't a list of functions but a list of results of function calls.
If you want the functions in that list then leave off the parentheses,
because those are the "call operator".

In [55]: def a():
....: return 1
....:

In [56]: def b():
....: return 2
....:

In [57]: funcs = [a, b]

In [58]: funcs
Out[58]: [<function a at 0xb7792e2c>, <function b at 0xb779e1ec>]

In [59]: funcs[0]()
Out[59]: 1

In [60]: funcs[1]()
Out[60]: 2

Ciao,
Marc 'BlackJack' Rintsch
Aug 30 '07 #2
azrael a écrit :
Hy Guys

Did anyone manage to install and use Pivy. I'm trying it and cant come
closer to the goal I get the message:
Please set the COIN3DDIR environment variable to your Coin root
directory! ** Aborting **

Familiar to anyone?
I don't even know what Pivy is, but it obviously wants you to set an
environment variable (how you do so depends on your environment - on
most linux distros, and AFAIK on most unix systems, it's usually done in
your ~/.bash_profile file) named COIN3DIR and pointing to a directory !-)
Aug 30 '07 #3
Marc 'BlackJack' Rintsch wrote:
A fine repy
In [57]: funcs = [a, b]
In [58]: funcs
Out[58]: [<function a at 0xb7792e2c>, <function b at 0xb779e1ec>]

In [59]: funcs[0]()
Out[59]: 1

In [60]: funcs[1]()
Out[60]: 2
and a "list comprehension" allows you to call these things no matter how
long the list is.

So after the above:
>>results = [f() for f in funcs]
print results
[1, 2]
Aug 31 '07 #4
Look, what I think about is this.
I'd like to make a multi dimensional list in which evry single element
would represent a function. By looping through the list I would
execute the functions. But not only that, it is possible to experiment
with recoursions.
the return 1 2 and 3 examples are just a examples. Of course that the
thing I'm thinking about is a little bit more complex.

Sep 1 '07 #5
On Aug 30, 8:10 pm, Scott David Daniels <dani...@dsl-only.netwrote:
Marc 'BlackJack' Rintsch wrote:

A fine repy
In [57]: funcs = [a, b]
In [58]: funcs
Out[58]: [<function a at 0xb7792e2c>, <function b at 0xb779e1ec>]
In [59]: funcs[0]()
Out[59]: 1
In [60]: funcs[1]()
Out[60]: 2

and a "list comprehension" allows you to call these things no matter how
long the list is.

So after the above:
>>results = [f() for f in funcs]
>>print results
[1, 2]
You can also use exec, but someone will tell you that the sky is going
to fall if you do. I am one of the ones who think that calling a
function with
results = [f() for f in funcs]
doesn't "work" because it gives a meaningless error message that the
calling line didn't work. There is already enough discussion about
this, so if you use "some_string()" to call a function, wrap it in a
try/except with a traceback.

Sep 2 '07 #6
On Sun, 02 Sep 2007 14:35:00 +0000, Zentrader wrote:
You can also use exec, but someone will tell you that the sky is going
to fall if you do. I am one of the ones who think that calling a
function with
results = [f() for f in funcs]
doesn't "work" because it gives a meaningless error message that the
calling line didn't work.
What meaningless error message are you talking about!?

Ciao,
Marc 'BlackJack' Rintsch
Sep 2 '07 #7
What meaningless error message are you talking about!?
>
Ciao,
Marc 'BlackJack' Rintsch
My mistake. It appears that this is no longer the case. And my
apologies. It was probably in version 2.3 or earlier that this was a
problem. Given the way that the Python community constantly improves
the language, I should have checked first, but "shoulds" don't count.

Sep 2 '07 #8

This discussion thread is closed

Replies have been disabled for this discussion.

Similar topics

2 posts views Thread by Hal Vaughan | last post: by
24 posts views Thread by Charif Lakchiri | last post: by
1 post views Thread by Chump Wad | last post: by
64 posts views Thread by yossi.kreinin | last post: by
5 posts views Thread by Kentor | last post: by
reply views Thread by suresh191 | last post: by
1 post views Thread by Marylou17 | last post: by
By using this site, you agree to our Privacy Policy and Terms of Use.