Thanks for the replies from everybody. It looks like I should double check super_init and see what truck is coming from that which will hit me with a gotcha later. I'm very naively right now plucking the class from my locals and I was able to proceed in the very, very short term.
I think I would have run into something like this earlier but I was doing something else incorrectly with self references in general. I was having my byte code push the object reference on the stack for method calls instead of using a naive one. For example: m.change_a(2) Disregarding unrelated code, it disassembles to this in a 3.6 intepreter: 3 6 LOAD_FAST 0 (m) 8 LOAD_ATTR 1 (change_a) 10 LOAD_CONST 1 (2) 12 CALL_FUNCTION 1 I have been doing an oopsies of trying to push the self reference on the stack for the method. So I'm doing something like: 3 6 LOAD_FAST 0 (m) 8 LOAD_ATTR 1 (change_a) X LOAD_FAST 0 (m) 10 LOAD_CONST 1 (2) 12 CALL_FUNCTION 2 Whoops. Now I need to figure out how the interpreter knows that change_a is a method and knows what self to feed it. I'm assuming that's in the cell variables similar to what super()'s doing as explained here. I haven't implemented cell variables so this is where I'm stuck in a sand pit. -- https://mail.python.org/mailman/listinfo/python-list