[Python-Dev] Type annotations and metaclasses

Thomas Hauk THauk at copperleaf.com
Fri Mar 3 16:56:28 EST 2017


I've read through PEPs 483, 484, and 526, but I don't see any discussion of how type hints should work when the type of a class member differs from the type of an instance member, like when metaclasses are used to create instances.

e.g.:

>>> from django.db import models
>>> class MyModel(models.Model):
...     name = models.CharField()
...     class Meta:
...         app_label = "myapp"
...
>>> type(MyModel.name)
<class 'django.db.models.query_utils.DeferredAttribute'>
>>> m = MyModel()
>>> type(m.name)
<class 'str'>

In this case, I would like to be able to specify an instance type of str for MyModel.name.

Can someone point me to any existing relevant discussion? Or if not, where should a new discussion start?

T

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-dev/attachments/20170303/929753a6/attachment.html>


More information about the Python-Dev mailing list