[pyar] Accesar dentro de una función anidada.
Claudio Freire
klaussfreire en gmail.com
Lun Mayo 9 17:13:11 ART 2011
2011/5/9 craf <pyclutter en gmail.com>:
> Tienes razón, no he logrado conectarme solo con la función 3. Para entender Decoradores he leído tu excelente apunte sobre ellos.
>>> def uno():
... def dos():
... def tres():
... print "tres"
... dos()
...
>>> uno()
>>> import dis
>>> dis.dis(uno)
2 0 LOAD_CONST 1 (<code object dos at
0x75b8b0, file "<stdin>", line 2>)
3 MAKE_FUNCTION 0
6 STORE_FAST 0 (dos)
5 9 LOAD_FAST 0 (dos)
12 CALL_FUNCTION 0
15 POP_TOP
16 LOAD_CONST 0 (None)
19 RETURN_VALUE
>>> dis.dis(uno.func_code.co_consts[1])
3 0 LOAD_CONST 1 (<code object tres at
0x75b830, file "<stdin>", line 3>)
3 MAKE_FUNCTION 0
6 STORE_FAST 0 (tres)
9 LOAD_CONST 0 (None)
12 RETURN_VALUE
>>> dis.dis(uno.func_code.co_consts[1].co_consts[1])
4 0 LOAD_CONST 1 ('tres')
3 PRINT_ITEM
4 PRINT_NEWLINE
5 LOAD_CONST 0 (None)
8 RETURN_VALUE
>>> exec(uno.func_code.co_consts[1].co_consts[1])
tres
>>>
Pero en serio... no querés hacer eso.
De ninguna manera.
More information about the pyar
mailing list