Que hacks legais podem ser feitos usando sys.settrace?
Eu adoro poder modificar os argumentos que são enviados para uma função, usandosettrace
, gostar :
import sys
def trace_func(frame,event,arg):
value = frame.f_locals["a"]
if value % 2 == 0:
value += 1
frame.f_locals["a"] = value
def f(a):
print a
if __name__ == "__main__":
sys.settrace(trace_func)
for i in range(0,5):
f(i)
E isso vai imprimir:
1
1
3
3
5
Que outras coisas legais você pode fazer usandosettrace
?