Assigning the module's __class__ means you can otherwise initialize your module instance normally--all your class needs to do is declare your properties or magic methods. If you overwrite the sys.modules entry for your module with a new instance of a custom subclass, all your module initialization needs to be done within--or propagated to--the new class or instance. //arry/ On 09/08/2017 01:45 PM, Ethan Furman wrote: > On 09/08/2017 12:44 PM, Larry Hastings wrote: > >> I've updated PEP 549 with a new title--"Instance Descriptors" is a >> better name than "Instance Properties"--and to >> clarify my rationale for the PEP. I've also updated the prototype >> with code cleanups and a new type: >> "collections.abc.InstanceDescriptor", a base class that allows user >> classes to be instance descriptors. > > I like the new title, I'm +0 on the PEP itself, and I have one > correction for the PEP: we've had the ability to simulate module > properties for ages: > > Python 2.7.6 (default, Oct 26 2016, 20:32:47) > [GCC 4.8.4] on linux2 > Type "help", "copyright", "credits" or "license" for more > information. > --> import module_class > --> module_class.hello > 'hello' > --> module_class.hello = 'hola' > --> module_class.hello > 'hola' > > And the code: > > class ModuleClass(object): > @property > def hello(self): > try: > return self._greeting > except AttributeError: > return 'hello' > @hello.setter > def hello(self, value): > self._greeting = value > > import sys > sys.modules[__name__] = ModuleClass() > > I will admit I don't see what reassigning the __class__ attribute on a > module did for us. > > -- > ~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/larry%40hastings.org -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://mail.python.org/pipermail/python-dev/attachments/20170908/9f27b002/attachment.html>
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4