Bagaimana untuk Mengelakkan Isu Ketergantungan Pekeliling dalam Modul Python?

DDD
Lepaskan: 2024-10-19 16:32:30
asal
725 orang telah melayarinya

How to Avoid Circular Dependency Issues in Python Modules?

Kebergantungan Pekeliling dalam Python

Kebergantungan bulatan boleh timbul apabila dua modul bergantung pada takrifan satu sama lain, menyebabkan isu import. Dalam kes ini, kami mempunyai dua fail Python: node.py dan path.py. Pada mulanya, path.py mengimport Node daripada node.py. Walau bagaimanapun, selepas kaedah baharu ditambahkan pada Laluan rujukan Nod, pergantungan bulat berlaku.

Untuk menyelesaikan isu ini, kami boleh mempertimbangkan beberapa pendekatan:

1. Import Bersyarat:

Import path.py hanya dalam fungsi yang diperlukan.

# in node.py
from path import Path

class Node:
    # ...

# in path.py
def method_needs_node():
    from node import Node
    n = Node()
    # ...
Salin selepas log masuk

2. Pengikatan Lewat:

Gunakan setattr() untuk menetapkan rujukan kelas yang tiada pada masa jalan.

# in node.py
# Placeholder Path class
class Path:
    pass

# Importing path.py
import path

# Assigning the actual Path class after importing path.py
path.Path = load_node_module('path.Path')  # Implementation details omitted

class Node:
    # ...

# in path.py
class Path:
    # ...
Salin selepas log masuk

Atas ialah kandungan terperinci Bagaimana untuk Mengelakkan Isu Ketergantungan Pekeliling dalam Modul Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!