Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.python > #105523
| From | dieter <dieter@handshake.de> |
|---|---|
| Newsgroups | comp.lang.python |
| Subject | Re: monkey patching __code__ |
| Date | 2016-03-23 09:24 +0100 |
| Message-ID | <mailman.37.1458721466.2244.python-list@python.org> (permalink) |
| References | <56EBEB5A.7050207@mail.de> <CAG93HwGKrN8y3k=3OFtHq-PbMjFzy=1U99-ZuJOLdEq69gosfg@mail.gmail.com> <56EED3DE.7050101@mail.de> <CAG93HwFr-yFqjex_U4yZs5WUuLCCbCJDJfso2Kp6G0F3BdKOZQ@mail.gmail.com> <56F13417.8060108@mail.de> |
"Sven R. Kunze" <srkunze@mail.de> writes: > ... > As far as I can see, the code replacement approach solves the problem > once and for all. Thus is far more stable. > > Manually finding out every single module that might or might not have > imported "reverse" before we could monkeypatch it might result in a > maintenance nightmare (just think about a Django upgrade). But you have observed that you cannot do everything with a code substitution: a function call does not only depend on the code but also on other properties of the function object: e.g. the parameter processing. You might be able to change them in a similar way as "__code__" (i.e. direct modification). Otherwise, you would need to construct a new "function object" -- and lose the possibility to completely change the function object in place.
Back to comp.lang.python | Previous | Next | Find similar | Unroll thread
Re: monkey patching __code__ dieter <dieter@handshake.de> - 2016-03-23 09:24 +0100
csiph-web