Passing data between objects and calling all objects of a class in turn

ghoetker ghoetker at
Wed Aug 25 04:49:42 CEST 2010

I'm a fairly new Python coder, learning along with my son (actually,
hopefully a bit ahead of him...). We're stuck on something.

As part of solving a backwards induction problem (purely as a learning
experience, we are geeks), we are going to create N objects, each of
the class "interview".  We will first create the N_th interview, which
will calculate, based on data we pass to it, its expected payoff
value.  We will then create interview N-1, which needs to know the
expected payoff of interview N in order to determine a decision and
then calculate its own expected payoff.  We then create interview N-2,
which needs to know the expected payoff of interview N-1, etc., until
we reach interview 1.

1.  How can we best (that is, most Pythonically) let interview N-1
know the expected value of interview N and so on.  One way would be to
define a variable "payoff_of_continuing" which gets set to the
expected value of interview N and is passed to interview N-1 when is
created.  Interview N-1 then resets "payoff_of_continuing", which is
passed to interview N-2 when it is created, etc.  Is there a more
Pythonic approach?

2.  When we want to output the results of the analysis, how do we most
Pythonically get each interview object in turn to report its identity,
the result of its decision and its expected payoff (e.g., For
interview 3, stop if you interview a good candidate. This interview's
expected value is 2.5). I know how to do the reporting part
(print....), it's the "getting each interview object in turn to..."
part that I'm unsure about.  We could have each interview report as it
is created, but I'm wondering if the splitting it into "Create all the
objects" and "Report the results from all the objects" is sensible.
For one thing, it would allow compiling the results into a table, etc.

I really appreciate any input.  I'm a competent procedural programmer
(albeit not primarily in Python), but a dabbler in object oriented
programming (we've already done this problem procedurally, but want to
try it again as OOP). Thank you!!

More information about the Python-list mailing list