python / python/typing

Class-qualified annotation expressions

Ouverte
#1,884 4 commentaires 1 réaction 0 personnes assignées Voir sur GitHub

Personne n'a encore pris cette issue.

topic: documentation
Langage dominant
Python
Étoiles
1.8k
Forks
302
Merge moyen
23 h
PR mergées (30 j)
8

Description

The wonderfully useful specification of type annotation expressions describes what kinds of expressions are valid type annotations.

I believe the spec does not include a case which type checkers support, although as we will see this comes down to semantics :)

class A:
    class B:
        pass

x: A.B = A.B()

The A.B annotation seems to fall under the name rule:

| name
      (where name must refer to a valid in-scope class,
       type alias, or TypeVar)

The spec helpfully continues:

Any leaf denoted as name may also be a qualified name (i.e., module '.' name or package '.' module '.' name, with any level of nesting).

The concept of a "qualified name" occurs only in this section, and the parenthetical explanation serves as it's most precise definition, as far as I can tell.

Should we extend the definition of "qualified name" to also include class members? Or maybe I should read the class as a "module" or a "package" and the existing definition suffices?

Guide de contribution

Aucun guide de contribution indexé pour ce dépôt

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Piste de recherche

Commencez par la spécification des expressions de type et d’annotation, en particulier par la définition de name et qualified name, et comparez-la avec l’exemple A.B de l’issue. Examinez comment les vérificateurs de types existants interprètent les annotations qualifiées par une classe ; le travail sera considéré comme terminé lorsque la spécification indiquera clairement si les membres de classe sont inclus et comment l’exemple est couvert.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Évaluation

Stack technique
python
Domaine
documentation
Type d'issue
Documentation
Difficulté
4/5
Temps estimé
3-5 jours
Activité
À l'abandon
Clarté
Plutôt claire
Accessibilité débutants
35/100

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.