Wie löst man zirkuläre Abhängigkeiten in Python mit zwei abhängigen Klassen auf?

Patricia Arquette
Freigeben: 2024-10-19 16:33:01
Original
946 Leute haben es durchsucht

How to Resolve Circular Dependencies in Python with Two Dependent Classes?

Zirkuläre Abhängigkeit in Python mit zwei Klassen

In Python kann es zu einem zirkulären Abhängigkeitsproblem kommen, wenn zwei Module sich gegenseitig importieren. Angenommen, Sie haben zwei Dateien, node.py und path.py, die Node- bzw. Path-Klassen definieren.

Ursprünglich importierte path.py Node mithilfe von from node.py import *. Nachdem Sie jedoch eine neue Methode in Node hinzugefügt haben, die Path verwendet, tritt beim Importieren von path.py eine Ausnahme auf, die darauf hinweist, dass Node undefiniert ist.

Um diese zirkuläre Abhängigkeit aufzulösen, ziehen Sie den folgenden Ansatz in Betracht:

Eine Möglichkeit besteht darin, nur eines der Module (in diesem Fall path.py) innerhalb der spezifischen Funktion/Methode des anderen Moduls (node.py) dort zu importieren, wo es benötigt wird. Dieser Ansatz funktioniert gut, wenn Sie die Abhängigkeit nur in einer begrenzten Anzahl von Funktionen benötigen:

<code class="python"># in node.py
from path import Path

class Node:
    ...

# in path.py
class Path:
    def method_needs_node():
        from node import Node
        n = Node()
        ...</code>
Nach dem Login kopieren

Indem Sie node.py nur innerhalb der method_needs_node()-Methode importieren, vermeiden Sie das Problem der zirkulären Abhängigkeit.

Das obige ist der detaillierte Inhalt vonWie löst man zirkuläre Abhängigkeiten in Python mit zwei abhängigen Klassen auf?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php
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
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!