[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