[Python-Dev] module customization (original) (raw)

Brett Cannon brett at python.org
Thu Nov 16 14🔞28 EST 2017


On Wed, 15 Nov 2017 at 16:27 Ethan Furman <ethan at stoneleaf.us> wrote:

So there are currently two ways to customize a module, with PEP 562 proposing a third.

The first method involves creating a standard class object, instantiating it, and replacing the sys.modules entry with it. The second way is fairly similar, but instead of replacing the entire sys.modules entry, its class is updated to be the class just created -- something like sys.modules['mymod'].class = MyNewClass . My request: Can someone write a better example of the second method? And include getattr ?

There's actually an example in the stdlib thanks to importlib.util.LazyLoader <https://docs.python.org/3/library/importlib.html#importlib.util.LazyLoader>, although it uses getattribute() and not getattr():

https://github.com/python/cpython/blob/d505a29a15a6f9315d8c46445b8a0cccfc2048b8/Lib/importlib/util.py#L212

-Brett

My question: Does that getattr method have 'self' as the first parameter? If not, why not, and if so, shouldn't PEP 562's getattr also take a 'self'?

-- Ethan


Python-Dev mailing list Python-Dev at python.org https://mail.python.org/mailman/listinfo/python-dev Unsubscribe: https://mail.python.org/mailman/options/python-dev/brett%40python.org -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://mail.python.org/pipermail/python-dev/attachments/20171116/92affb9b/attachment.html>



More information about the Python-Dev mailing list