[pyar] Puedo hacer el equivalente de "." de bash?

Roberto Alsina ralsina en netmanagers.com.ar
Mie Mar 28 15:43:30 ART 2012


On 03/28/2012 03:39 PM, Mariano Guerra wrote:
> 2012/3/28 Roberto Alsina<ralsina en netmanagers.com.ar>:
>> On 03/28/2012 03:35 PM, Emiliano M. Rudenick wrote:
>>>
>>> El Wed, 28 Mar 2012 15:22:28 -0300
>>> Roberto Alsina<ralsina en netmanagers.com.ar>    escribió:
>>>>
>>>> Un poquito de contexto:
>>>>
>>>> Supongamos que tengo un modulo m.py que contiene únicamente esto:
>>>>
>>>> def f1(x=CONST):
>>>>       print x
>>>>
>>>> Y tengo un script s.py que contiene únicamente esto:
>>>>
>>>> CONST = 4
>>>>
>>>> [magia]
>>>>
>>>> f1()
>>>>
>>>> Cual sería la [magia] para que eso imprima "4"? :-)
>>>>
>>>> Saludos,
>>>
>>>
>>> Se ve medio feo creo, ¿pero no funciona import f1 from m?
>>>
>>
>> No, me dice que CONST no está definida.
>
>>>> CONST=4
>>>> def f1(x=CONST):
> ...    print x
> ...
>>>> f1.func_defaults = (5,)
>>>> f1()
> 5
>
> notece que se donde se reemplazo CONST
>
> el tema es que los parametros por defecto son evaluados al crear la
> funcion, osea cuando el modulo se importa

Exacto, de ahí mi problema :-)

En realidad (como es obvio) el tema es un poco mas complicado, porque 
hay una docena de "constantes" que quiero pasar, varias de ellas usadas
en varias funciones distintas, y que no necesariamente sé cuales son.

Una idea que tengo es leer el módulo y eval() en vez de importarlo pero 
... puaj?

> miraste algo de import hooks?

Desconozco completamente...



More information about the pyar mailing list