On 2014-11-14 22:17, Richard Riehle wrote:
In C, C++, Ada, and functional languages, I can create an array of
functions, albeit with the nastiness of pointers in the C family.
For example, an array of functions where each function is an active
button, or an array of functions that behave like formulae in a
spreadsheet. I am finding this a bit challenging in Python.
Example:
r1c1 r1c2 r1c3
r2c1 r2c2 r2c3
r3c1 r3c2 r3c3
where r1 is row 1 and c1 is column 1. Suppose I want an array where
the colum three is a set of functions that operates on the other two
columns, depending on the values I set for those rows and columns?
As noted, I can do this pretty easily in most languages (well, except
for Java which does not support any kind of functional programming
capability), even if I have to use pointers.
I think my difficulty is related to the REPL nature of Python.
However, I am sure some clever Pythonista has found a way to do
this.
Thanks in advance for any suggestions,
In C, you're not creating an array of functions, but an array of
_pointers_ to functions.
In Python, we don't have pointers, but we do have references.
For example, you can define a function:
>>> def my_func():
... print('my_func called')
...
The name of the function is just a reference to that function:
>>> print(my_func)
<function my_func at 0x0000000002CBCBF8>
You call it using (...):
>>> my_func()
my_func called
You can store the reference in a list or bind another name to it:
>>> func_by_another_name = my_func
And call it by that other name:
>>> func_by_another_name()
my_func called
Does that help?
--
https://mail.python.org/mailman/listinfo/python-list