Re: self modifying code
- From: jjl@xxxxxxxxx (John J. Lee)
- Date: 29 Apr 2006 18:33:59 +0000
Robin Becker <robin@xxxxxxxxxxxxxxxxxxx> writes:
When young I was warned repeatedly by more knowledgeable folk that self
modifying code was dangerous.
Is the following idiom dangerous or unpythonic?
def func(a):
global func, data
data = somethingcomplexandcostly()
def func(a):
return simple(data,a)
return func(a)
1. I don't think most people would call that "self-modifying code". I
won't try defining that term precisely because I know you'll just
pick holes in my definition ;-)
2. The use of global func is just plain weird :-)
3. Peter Otten's version is OK, but how about this, using a closure
instead of globals (UNTESTED)
def make_func():
namespace = object()
namespace.data = None
def func(a):
if namespace.data is None:
namespace.data = somethingcomplexandcostly()
return simple(namespace.data, a)
return func
func = make_func()
John
.
- Follow-Ups:
- Re: self modifying code
- From: Steven Bethard
- Re: self modifying code
- From: Robin Becker
- Re: self modifying code
- References:
- self modifying code
- From: Robin Becker
- self modifying code
- Prev by Date: Re: opposite function to split?
- Next by Date: Re: Using a browser as a GUI: which Python package
- Previous by thread: Re: self modifying code
- Next by thread: Re: self modifying code
- Index(es):
Relevant Pages
|