Heim > Backend-Entwicklung > Python-Tutorial > Wie tippe ich eine Methode mithilfe der einschließenden Klasse in Python ein?

Wie tippe ich eine Methode mithilfe der einschließenden Klasse in Python ein?

Susan Sarandon
Freigeben: 2024-12-31 06:41:17
Original
138 Leute haben es durchsucht

How Do I Type Hint a Method Using the Enclosing Class in Python?

Wie tippe ich eine Methode mit dem Typ der einschließenden Klasse ein?

Herausforderung:

In Python Wenn Sie eine Methode angeben, die eine Instanz der einschließenden Klasse als Argument erwartet und eine Instanz derselben Klasse zurückgibt, werden möglicherweise Fehlermeldungen angezeigt Editor oder Code-Vervollständigung. Dieses Problem ergibt sich aus der Tatsache, dass die Klasse zum Zeitpunkt der Typangabe möglicherweise nicht vollständig definiert ist.

Lösung:

Um dieses Problem zu lösen, ziehen Sie die folgenden Optionen in Betracht :

Python 3.11 mit from typing import Self

Für Python-Versionen 3.11 und höher verwenden Sie Geben Sie „import Self“ ein, um Ihre Methode wie folgt zu kommentieren:

from typing import Self

class Position:
    def __add__(self, other: Self) -> Self:
        ...
Nach dem Login kopieren

Python 3.7 mit from zukünftigen Importanmerkungen

Aktivieren Sie die verschobene Auswertung von Annotationen, indem Sie from __future__ Import einschließen Anmerkungen am Anfang Ihres Moduls. Dadurch können Sie einen Hinweis mit dem Klassennamen eingeben:

from __future__ import annotations

class Position:
    def __add__(self, other: Position) -> Position:
        ...
Nach dem Login kopieren

Python < 3.7: Verwenden Sie einen String

Verwenden Sie für Python-Versionen unter 3.7 einen String, um die einschließende Klasse in Ihren Typhinweisen darzustellen:

class Position:
    def __add__(self, other: 'Position') -> 'Position':
        ...

Einschränkungen

Bei der Verwendung eines Strings Obwohl dies möglicherweise mit der Codevervollständigung funktioniert, ist es wichtig zu beachten, dass dieser Ansatz nicht von allen Python-Versionen vollständig unterstützt wird und zu Problemen bei der statischen Analyse führen kann Tools.

Empfohlener Ansatz

Für optimale Ergebnisse wird empfohlen, from typing import Self in Python 3.11 oder from __future__ import annotations in Python 3.7 zu verwenden, sofern verfügbar. Dadurch wird sichergestellt, dass die Typhinweise korrekt verarbeitet werden und mit den neuesten Sprachfunktionen kompatibel sind.

Das obige ist der detaillierte Inhalt vonWie tippe ich eine Methode mithilfe der einschließenden Klasse in Python ein?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage