#! /usr/bin/env python import random import pickle def trace_call(func): def wrapped(*args, **kwargs): print(func.__name__, "() was called", sep = '') return func(*args, **kwargs) return wrapped random.Random.__getstate__ = trace_call(random.Random.__getstate__) if __name__ == "__main__": r = random.Random() pickle.loads(pickle.dumps(r)) pickle.loads(pickle.dumps(random.Random))