yes, I see, but how can I measure this? Do you know the function that is 
used?
Thanks for the help. 

Em terça-feira, 17 de abril de 2012 05h39min24s UTC-3, Philip escreveu:
>
>  Are you changing the definition of the function each time, or just 
> effectively making duplicates of some common function under different names?
>
> You can do things like this:
>
> def make_funct(blah):
>     def inner():
>         print blah
>     
>     return inner
>
> Then make a few of them with different names and pre-assigned config via 
> the parameters:
>
> f1 = make_funct('Hello World!')
> f2 = make_funct('Foo')
>
> And call 'em (with no parameters):
>
> f1()    =>    prints Hello World!
> f2()    =>    prints Foo
>
> Perhaps that's not what you're looking for though?
>
> In terms of performance, I suggest trying out both approaches and 
> measuring the time taken to do it a few hundred or thousand times and 
> compare.
>
> Regards
> Phil
>
>
> On 16/04/2012 17:55, Arruda wrote: 
>
> Hummm, I see, thanks for that, I didn't know about type. 
> And is there a way to generate functions too?(I was also doing it using 
> exec).
>
>  And do you have any idea of how can I see the difference in performance 
> when using one or the other?
> Thanks. 
>
> Em segunda-feira, 16 de abril de 2012 13h45min58s UTC-3, Jefferson Heard 
> escreveu: 
>>
>> Check https://github.com/JeffHeard/ga_dynamic_models.  It may be similar 
>> to what you're looking for.  Even if you don't want the code, you can see a 
>> way of dynamically generating models.  
>>
>> On Mon, Apr 16, 2012 at 12:40 PM, Philip Mountifield <
>> pmountifi...@formac.net> wrote:
>>
>>>  Did you know that you can use the type function to dynamiclly generate 
>>> a class definition?
>>>
>>> See http://docs.python.org/library/functions.html?highlight=type#type
>>>
>>> From the example:
>>>
>>> >>> class X(object):...     a = 1
>>> Is exactly the same as doing...>>> X = type('X', (object,), dict(a=1))
>>>
>>> No exec required...
>>>
>>> Regards
>>> Phil 
>>>
>>>
>>>
>>> On 16/04/2012 17:19, Arruda wrote: 
>>>
>>> I'm doing something like this to generate some models dynamically: 
>>>
>>>  SIMILAR_MODELS_TEMPLATE=
>>>> """
>>>> @some_decorator
>>>> class %(PREFIX)sModel (Some_Abs_model):
>>>>     \"""%(DESCRIPTION)s
>>>>     \"""
>>>>     pass
>>>> """
>>>
>>>
>>>  then I have a factory:
>>>
>>>> def similar_models_factory(prefix,description):
>>>>      format_dict = {
>>>>                           'PREFIX' : prefix,
>>>>                           'DESCRIPTION' : description,
>>>>      }
>>>>      cls_name = "%sModel" % prefix
>>>>      cls_source = SIMILAR_MODELS_TEMPLATE % format_dict
>>>>      
>>>>      exec(cls_source)
>>>>      new_cls = locals().get(cls_name)
>>>>      return new_cls
>>>
>>>
>>>  And finally I have in the models.py:
>>>
>>>> from my_factories import similar_models_factory 
>>>>
>>>  
>>>
>>> SIMILAR_MODELS_LIST =(
>>>>     {'prefix': 'Foo', 'desc' : 'Foo model and etc..',},
>>>>     {'prefix': 'Bars', 'desc' : 'Bars model and etc..',},
>>>> .....
>>>> )
>>>>
>>>  
>>>
>>> for smodel in SIMILAR_MODELS_LIST:
>>>>     cls = similar_models_factory(smodels['prefix'], smodels['desc'])
>>>>     vars()[cls.__name__] = cls
>>>
>>>
>>>  And this gives my just what I want, but I read somewhere that if you 
>>> do:
>>>
>>>> exec ""
>>>
>>>  
>>> It would be too costly, and I would like to know if this would have some 
>>> heavy load in my project(and if please, how can I calculate this, to 
>>> compare?) 
>>> Thanks!
>>> -- 
>>> You received this message because you are subscribed to the Google 
>>> Groups "Django users" group.
>>> To view this discussion on the web visit 
>>> https://groups.google.com/d/msg/django-users/-/64JCLnsIFu0J.
>>> To post to this group, send email to django-users@googlegroups.com.
>>> To unsubscribe from this group, send email to 
>>> django-users+unsubscr...@googlegroups.com.
>>> For more options, visit this group at 
>>> http://groups.google.com/group/django-users?hl=en.
>>>
>>>
>>>
>>>   -- 
>>>
>>> Philip Mountifield
>>> Formac Electronics Ltd
>>> tel  +44 (0) 1225 837333
>>> fax  +44 (0) 1225 430995
>>> pmountifi...@formac.netwww.formac.netwww.telgas.net
>>>
>>>  -- 
>>> You received this message because you are subscribed to the Google 
>>> Groups "Django users" group.
>>>   To post to this group, send email to django-users@googlegroups.com.
>>> To unsubscribe from this group, send email to 
>>> django-users+unsubscr...@googlegroups.com.
>>> For more options, visit this group at 
>>> http://groups.google.com/group/django-users?hl=en.
>>>  
>>  
>>  -- 
> You received this message because you are subscribed to the Google Groups 
> "Django users" group.
> To view this discussion on the web visit 
> https://groups.google.com/d/msg/django-users/-/pxR15NDv5RUJ.
> To post to this group, send email to django-users@googlegroups.com.
> To unsubscribe from this group, send email to 
> django-users+unsubscr...@googlegroups.com.
> For more options, visit this group at 
> http://groups.google.com/group/django-users?hl=en.
>
>
>
> -- 
>
> Philip Mountifield
> Formac Electronics Ltd
> tel  +44 (0) 1225 837333
> fax  +44 (0) 1225 430995
> pmountifi...@formac.netwww.formac.netwww.telgas.net
>
> 

-- 
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To view this discussion on the web visit 
https://groups.google.com/d/msg/django-users/-/hMxgXN_ny0oJ.
To post to this group, send email to django-users@googlegroups.com.
To unsubscribe from this group, send email to 
django-users+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/django-users?hl=en.

Reply via email to