Hacktoberfest 2026: die Issues, die Maintainer für den Oktober markiert haben – offen und einsteigerfreundlich. Hacktoberfest-Issues durchsuchen

Class-qualified annotation expressions

Offen
#1,884 4 Kommentare 1 Reaktion 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

Bewertung

Schwierigkeit
4/5
Geschätzter Aufwand
3-5 Tage
Anfängerfreundlichkeit
35/100
Issue-Typ
Dokumentation
Klarheit
Größtenteils klar
Aktivitätsstatus
Veraltet
Tech-Stack
python
Bereich
documentation

Rechercherichtung

Beginne mit der Spezifikation für Typ- und Annotation-Ausdrücke, insbesondere mit der Definition von name und qualified name, und vergleiche sie mit dem Beispiel A.B im issue. Überprüfe, wie bestehende Typprüfer klassenqualifizierte Annotationen interpretieren; als abgeschlossen gilt die Aufgabe, wenn die Spezifikation eindeutig festlegt, ob Klassenmitglieder eingeschlossen sind und wie das Beispiel abgedeckt ist.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Beschreibung

topic: documentation

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?

Vorherrschende Sprache
Python
Sterne
1.8k
Forks
302
Ø Merge
23 Std.
Gemergte PRs (30 T.)
8

Beitragsleitfaden

Für dieses Repository ist kein Beitragsleitfaden indexiert

Erste Schritte

  1. Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
  3. Forken Sie das Repository und arbeiten Sie in einem Branch.
  4. Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.

Mehr aus python/typing

Alle Issues in python/typing

Ähnliche Issues

Weitere Issues zu Python

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.