[Python-Dev] PEP 549: Instance Properties (aka: module properties) (original) (raw)

Ivan Levkivskyi levkivskyi at gmail.com
Thu Sep 14 15:08:34 EDT 2017


On 14 September 2017 at 01:13, Guido van Rossum <guido at python.org> wrote:

That last sentence is a key observation. Do we even know whether there are (non-toy) things that you can do in principle with class assignment but which are too slow in practice to bother? And if yes, is getattr fast enough? @property? I myself have never implemented deprecation warnings management nor lazy loading, so it is hard to say if class assignment is fast enough. For me it is more combination of three factors:

IMO we're still looking for applications.

How about this

def allow_forward_references(*allowed): caller_globals = sys._getframe().globals def typing_getattr(name): if name in allowed: return name raise AttributeError(...) caller_globals.getattr = typing_getattr

from typing_extensions import allow_forward_references allow_forward_references('Vertex', 'Edge')

T = TypeVar('T', bound=Edge)

class Vertex(List[Edge]): def copy(self: T) -> T: ...

class Edge: ends: Tuple[Vertex, Vertex] ...

Look mum, no quotes! :-)

-- Ivan -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://mail.python.org/pipermail/python-dev/attachments/20170914/71f6a9f3/attachment.html>



More information about the Python-Dev mailing list