Nice, I'll test things out.

Em terça-feira, 17 de abril de 2012 10h04min05s UTC-3, Philip escreveu:
>
>  You probably want the profile module from the standard library. This will 
> tell you all sorts of useful things about how much time functions are 
> taking and how many times they are called etc...
>
> http://docs.python.org/library/profile.html#module-profile
>
> Regards
> Phil
>
> On 17/04/2012 13:48, Arruda wrote: 
>
> 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
>>
>>   
>
> -- 
>
> 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/-/09WJGq8WsVoJ.
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