import pickle import pickletools class Class: def __init__(self, a, b, c): self.a = a self.b = b self.c = c class ClassSlots: __slots__ = ["a", "b", "c"] def __init__(self, a, b, c): self.a = a self.b = b self.c = c pickletools.dis(pickle.dumps(Class(1, 2, 3))) print('-------------') pickletools.dis(pickle.dumps(ClassSlots(1, 2, 3))) print('-------------') pickletools.dis(pickletools.optimize(pickle.dumps(ClassSlots(1, 2, 3))))
Standard input is empty
0: \x80 PROTO 4 2: \x95 FRAME 48 11: \x8c SHORT_BINUNICODE '__main__' 21: \x94 MEMOIZE (as 0) 22: \x8c SHORT_BINUNICODE 'Class' 29: \x94 MEMOIZE (as 1) 30: \x93 STACK_GLOBAL 31: \x94 MEMOIZE (as 2) 32: ) EMPTY_TUPLE 33: \x81 NEWOBJ 34: \x94 MEMOIZE (as 3) 35: } EMPTY_DICT 36: \x94 MEMOIZE (as 4) 37: ( MARK 38: \x8c SHORT_BINUNICODE 'a' 41: \x94 MEMOIZE (as 5) 42: K BININT1 1 44: \x8c SHORT_BINUNICODE 'b' 47: \x94 MEMOIZE (as 6) 48: K BININT1 2 50: \x8c SHORT_BINUNICODE 'c' 53: \x94 MEMOIZE (as 7) 54: K BININT1 3 56: u SETITEMS (MARK at 37) 57: b BUILD 58: . STOP highest protocol among opcodes = 4 ------------- 0: \x80 PROTO 4 2: \x95 FRAME 56 11: \x8c SHORT_BINUNICODE '__main__' 21: \x94 MEMOIZE (as 0) 22: \x8c SHORT_BINUNICODE 'ClassSlots' 34: \x94 MEMOIZE (as 1) 35: \x93 STACK_GLOBAL 36: \x94 MEMOIZE (as 2) 37: ) EMPTY_TUPLE 38: \x81 NEWOBJ 39: \x94 MEMOIZE (as 3) 40: N NONE 41: } EMPTY_DICT 42: \x94 MEMOIZE (as 4) 43: ( MARK 44: \x8c SHORT_BINUNICODE 'a' 47: \x94 MEMOIZE (as 5) 48: K BININT1 1 50: \x8c SHORT_BINUNICODE 'b' 53: \x94 MEMOIZE (as 6) 54: K BININT1 2 56: \x8c SHORT_BINUNICODE 'c' 59: \x94 MEMOIZE (as 7) 60: K BININT1 3 62: u SETITEMS (MARK at 43) 63: \x86 TUPLE2 64: \x94 MEMOIZE (as 8) 65: b BUILD 66: . STOP highest protocol among opcodes = 4 ------------- 0: \x80 PROTO 4 2: \x95 FRAME 47 11: \x8c SHORT_BINUNICODE '__main__' 21: \x8c SHORT_BINUNICODE 'ClassSlots' 33: \x93 STACK_GLOBAL 34: ) EMPTY_TUPLE 35: \x81 NEWOBJ 36: N NONE 37: } EMPTY_DICT 38: ( MARK 39: \x8c SHORT_BINUNICODE 'a' 42: K BININT1 1 44: \x8c SHORT_BINUNICODE 'b' 47: K BININT1 2 49: \x8c SHORT_BINUNICODE 'c' 52: K BININT1 3 54: u SETITEMS (MARK at 38) 55: \x86 TUPLE2 56: b BUILD 57: . STOP highest protocol among opcodes = 4