Document that `inspect.isclass` returns False for `GenericAlias` instances
Ouverte
@AbduazizZiyodov y travaille déjà.
Depuis le 13/4/2025.
docs
easy
- Langage dominant
- Python
- Étoiles
- 77.2k
- Forks
- 35.9k
- Métriques de merge des PR
- Métriques de PR en attente
Description
Bug report
Bug description:
Hi
I am not sure if this is a bug, but I use the bug template because I couldn't find a better one to submit questions like this one.
The documentation says, "User-defined generic classes can be instantiated.".
import inspect
from typing import TypeVar, Generic
T = TypeVar("T")
class Node(Generic[T]):
x: T # Instance attribute (see below)
def __init__(self, label: T | None = None) -> None:
self.label = label
x = Node("") # Inferred type is Node[str]
y = Node(0) # Inferred type is Node[int]
z = Node() # Inferred type is Node[Any]
# Also OK:
y = Node[int](0)
print(inspect.isclass(Node)) # True
print(inspect.isclass(Node[int])) # False (shouldn't this be True?)
print(inspect.isclass(Node[str])) # False (shouldn't this be True?)
In the example above, shouldn't calls such as inspect.isclass(Node[int]) return True, since they can be instantiated and used like normal classes?
CPython versions tested on:
3.13
Operating systems tested on:
Linux
Linked PRs
- gh-133504
- gh-150854
- gh-151116
- gh-151117
Guide de contribution
Ouvrir le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Évaluation
Cette issue n'a pas encore été évaluée.