"once" assigment in Python
Larry Bates
larry.bates at websafe.com
Mon Sep 17 10:54:00 EDT 2007
Lorenzo Di Gregorio wrote:
> Hello,
>
> I've been using Python for some DES simulations because we don't need
> full C speed and it's so much faster for writing models. During
> coding I find it handy to assign a variable *unless it has been
> already assigned*: I've found that this is often referred to as "once"
> assigment.
>
> The best I could come up with in Python is:
>
> try:
> variable
> except NameError:
> variable = method()
>
> I wonder if sombody has a solution (trick, whatever ...) which looks
> more compact in coding. Something like:
>
> once(variable, method)
>
> doesn't work, but it would be perfect. Of course I can preprocess the
> Python code but an all-Python solution would be more handy.
>
> Any suggestions?
>
> Thx in advance,
> Lorenzo
>
IMHO variables like what you describe are really data not program variables.
You might consider putting variables like these in a dictionary and then check
to see if the keys exist before assignment:
var_dict={}
#
# See if 'varname' initialized, if not it needs to be
#
if 'varname' not in var_dict:
var_dict[varname]=somevalue
-Larry
More information about the Python-list
mailing list