You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The following program prints __main__.A[int] even though A is not generic. I'd expect it to print something like <class '__main__.A'>.
from typing import Iterator
class A(Iterator[int]):
def __next__(self): pass
print(A().__class__)
Also, this does not generate an exception, even though A is not generic:
def f(x: A[int]) -> None: pass
The text was updated successfully, but these errors were encountered:
JukkaL
changed the title
Confusing __class__ for instance of non-generic class that subclasses generic clsas
Confusing __class__ for instance of non-generic class that subclasses generic class
May 21, 2015
I'm on the fence about calling this a bug. What I implemented in rev 25af77d is that no matter how you instantiate A, you always get the original class A as the instance's __class__. And that is what's happening here. It just so happens that the actual class A remembers its parameters. Regarding using A[int] later, that probably shouldn't be allowed -- I need to rework the logic here. This is also related to issue #115. I will have to come back to this later.
The following program prints
__main__.A[int]
even thoughA
is not generic. I'd expect it to print something like<class '__main__.A'>
.Also, this does not generate an exception, even though
A
is not generic:The text was updated successfully, but these errors were encountered: