2013-04-19 9 views
6

Dokumentacja dla sys.settrace mówi, że może raportować wywołania funkcji c lub wbudowanych. Kiedy próbuję następujący program, spodziewam się, aby zobaczyć wydarzenie c_call, ale nic się nie dzieje:Zestaw sys.settrace w języku Python nie będzie tworzyć zdarzeń c_call

import sys 

def tracer(frame, event, arg): 
    print(frame, event, arg) 
    return tracer 

sys.settrace(tracer) 

x = len([1,2,3]) 

Jakieś pomysły co się dzieje tutaj?

Czy ktoś może zamieścić przykład użycia sys.settrace, który generuje zdarzenie c_call?

EDYCJA: Początkowo wypróbowałem to w Pythonie 3.2 i nie dało mi to żadnych zdarzeń. Teraz wypróbowałem to w Pythonie 2.7 i dało mi to dwie call -s (nie -s). Wciąż dziwne.

Odpowiedz

Powiązane problemy