Got it. Thanks.

On Sunday, January 30, 2011 6:21:17 PM UTC-5, Massimo Di Pierro wrote:

> You should be able to use 
>
> default=f 
>
> Trunk version handles this better than 1.65.6 which has problems with 
> MethodType. 
>
> Yet if f is an instance with a a __call__ method, it will not call it. 
> For instancetype it will try serialize it with __str__. 
>
>
>
> On Jan 30, 1:36 pm, Anthony <[email protected]> wrote: 
> > On Friday, January 28, 2011 9:32:13 AM UTC-5, Massimo Di Pierro wrote: 
> > 
> > > The fact is, you can do both. If you want the values to be evaluated 
> > > on insert, just do 
> > 
> > > Field(...,default=lambda: f()) 
> > 
> > What's the difference between using "default=lambda: f()" and just using 
> > "default=f" (assuming f is defined as a function somewhere)? 
> > 
> > Is it just that "lambda: f()" guarantees you get something with type = 
> > FunctionType (so, for example, "default=lambda: datetime.datetime.now()" 
> > would work even though type(datetime.datetime.now) is BuiltinFunctionType 
>
> > and not FunctionType), or is there some other reason to prefer the lambda 
>
> > version? 
> > 
> > It would be very helpful to discuss the use of functions as field 
> defaults 
> > in the book (especially the issue of calling a function once at request 
> time 
> > vs. passing a function to be called per record at insert time). 
> > 
> > Thanks. 
> > 
> > Anthony

Reply via email to