Subscripted generic classes should not have independent class variables · Issue #392 · python/typing (original) (raw)

Skip to content

Provide feedback

Saved searches

Use saved searches to filter your results more quickly

Sign up

Appearance settings

@ilevkivskyi

Description

@ilevkivskyi

Currently we have

class A(Generic[T]): x = None

A[int].x = 1 A[str].x = 'a'

print(A[int].x) # prints 1 print(Aint.x) # prints None, since type is erased on instantiation

@JukkaL argues and I agree with him, that this looks wrong. Conceptually, there should be only one runtime class. I think we can implement this without loosing the current runtime generic information by tweaking descriptor __dict__ of GenericMeta, so that all assignments and look-ups on subscripted class objects like A[int] will be transferred to the original class object A.

@gvanrossum What do you think?