Heim >Backend-Entwicklung >Python-Tutorial >Wie kann ich die umschließende Klasse einer Methode in Python eingeben?

Wie kann ich die umschließende Klasse einer Methode in Python eingeben?

Barbara Streisand
Barbara StreisandOriginal
2024-12-19 11:17:09605Durchsuche

How Can I Type Hint a Method's Enclosing Class in Python?

Typhinweis auf eine Methode mit umschließendem Klassentyp

In Python kann die Darstellung des Typs der umschließenden Klasse einer Methode je nach Methode durch verschiedene Methoden erreicht werden auf der Python-Version.

Python 3.7 mit 'from zukünftige Annotationen importieren'

Durch die Aktivierung der Funktion „Verzögerte Auswertung von Annotationen“ mit aus __future__-Importanmerkungen können Anmerkungen als Zeichenfolgen gespeichert und asynchron ausgewertet werden.

from __future__ import annotations

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

Python 3.11 mit „from typing import Self'

Python 3.11 führt den Self-Typ ein, um den umschließenden Klassentyp darzustellen.

from typing import Self

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

Python <3.7

Für In Python-Versionen vor 3.7 werden Zeichenfolgen verwendet, um die einschließende Klasse anzugeben Typ.

class Position:
    def __add__(self, other: 'Position') -> 'Position':
        ...<p><strong>Umgang mit Vorwärtsverweisen</strong></p>
<p>PEP 484 gibt an, dass Vorwärtsverweise als Zeichenfolgen dargestellt werden sollten, bis sie vollständig definiert sind.</p>
<pre class="brush:php;toolbar:false">class Tree:
    def __init__(self, left: 'Tree', right: 'Tree'):
        ...

Alternativen

Vermeiden Sie die Verwendung von Dummy-Definitionen Einschließen einer Klasse oder Monkey-Patching der Klasse, um Anmerkungen hinzuzufügen, da diese Ansätze zu einem falschen Anmerkungsverhalten führen können.

Das obige ist der detaillierte Inhalt vonWie kann ich die umschließende Klasse einer Methode in Python eingeben?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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