


Relative Importe in Python 3
Wenn Sie versuchen, eine Funktion aus einer anderen Datei im selben Verzeichnis zu importieren, verwenden Sie entweder from .mymodule import myfunction oder from mymodule import myfunction can zu Fehlern führen. Der Grund liegt darin, ob sich das Modul, das die zu importierende Funktion enthält, in einem Paket befindet oder nicht.
Relative Importe verwenden
Relative Importe funktionieren, wenn sich das Modul in einem Paket befindet. Um ein Paket zu erstellen, muss eine __init__.py-Datei in dem Verzeichnis vorhanden sein, das die Module enthält. Es ist jedoch auch wichtig, sicherzustellen, dass das Modul manchmal als Skript ausgeführt werden kann.
Codestruktur
Ein allgemeines Layout für ein Paket, das mehrere Module und ein Hauptskript enthält, ist wie folgt folgt:
- main.py
-
mypackage/
- __init__. py
- mymodule.py
- myothermodule.py
Innerhalb mymodule.py:
# Exported function def as_int(a): return int(a) # Test function for module def _test(): assert as_int('1') == 1 if __name__ == '__main__': _test()
In myothermodule.py:
# Import exported function from the mymodule from .mymodule import as_int # Exported function def add(a, b): return as_int(a) + as_int(b) # Test function for module def _test(): assert add('1', '1') == 2 if __name__ == '__main__': _test()
In main.py:
# Import exported function from myothermodule from mypackage.myothermodule import add def main(): print(add('1', '1')) if __name__ == '__main__': main()
Ausführen des Codes
Beim Ausführen von main.py oder mypackage/mymodule.py wird der Code ohne Probleme ausgeführt. Der Versuch, mypackage/myothermodule.py auszuführen, führt jedoch zu einem Fehler im Zusammenhang mit dem verwendeten relativen Import (von .mymodule import as_int).
Alternative Ansätze
Es gibt zwei alternative Ansätze, um dieses Problem zu beheben :
- Absolute Importe verwenden: Ersetzen Sie den relativen Import durch einen absoluten Import durch Angabe des vollständigen Modulpfads: from mypackage.mymodule import as_int. Dies erfordert jedoch, dass das übergeordnete Verzeichnis des Pakets zum PYTHONPATH hinzugefügt wird.
- Verwenden Sie die Option -m: Um die Verwendung absoluter Importe zu vermeiden und gleichzeitig sicherzustellen, dass das Modul ordnungsgemäß ausgeführt wird, verwenden Sie die Option - m-Option mit Python: python3 -m mypackage.myothermodule. Dieser Ansatz erfordert die Ausführung des Befehls aus dem übergeordneten Verzeichnis des Pakets.
Das obige ist der detaillierte Inhalt vonWie gehe ich mit relativen Importen in Python-Paketen um, wenn Module als Skripte ausgeführt werden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

PythonusesahybridmodelofCompilation und Interpretation: 1) thepythonInterPreterCompilessourceCodeIntoplatform-unintenpendentBytecode.2) Thepythonvirtualmachine (PVM) ThenexexexexecthisByTeCode, BalancingeAnsewusewithperformance.

Pythonisbothinterpreted und kompiliert.1) ItscompiledToByteCodeForPortabilityAcrossplatform.2) thytecodeTheninterpreted, und das ErlaubnisfordyNamictyPingandRapidDevelopment zulässt, obwohl es sich

ForloopsaridealWenyouKnowtHenumberofofiterationssinadvance, während whileloopsarebetterForsituationswhereyouneedtoloopuntilaconditionismet.forloopsaremoreffictionAndable, geeigneter Verfaserungsverlust, whereaswiloopsofofermorcontrolanduseusefulfulf

Forloopsareusedwhenthenumberofiterationsisknowninadvance,whilewhileloopsareusedwhentheiterationsdependonacondition.1)Forloopsareidealforiteratingoversequenceslikelistsorarrays.2)Whileloopsaresuitableforscenarioswheretheloopcontinuesuntilaspecificcond

Pythonisnotpurelyinterpretiert; itusesahybridapproachofByteCodecompilation undruntimeinterpretation.1) PythoncompilessourcecodeIntoBytecode, die ISthenexecutBythepythonvirtualmachine (Pvm)

ToconcatenatelistsinpythonWithThesameElements, Verwendung: 1) Die Operatortokeepduplikate, 2) asettoremoveduplicate, or3) listenConpRectionforControloverDuplikate, EvermethodhasDifferentPerformanceInDormplocate.

PythonisaninterpretedLuage, OfferingaseofuseandflexibilitätsbutfacingPerformancelimitationsincriticalApplications.1) InterpretedLanguages LikePythonexecutine-by-Line, ermöglicht, dassmediateFeedbackandrapidPrototyping.2) CompiledLanguagesslikec/C.5.

Useforloopswhenthenumberofofiterationssisknowninadvance und wileloopswhenCiterationsDependonacondition.1) Forloopsardealforsequencelistorranges.2) Während


Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heißer Artikel

Heiße Werkzeuge

SublimeText3 Englische Version
Empfohlen: Win-Version, unterstützt Code-Eingabeaufforderungen!

EditPlus chinesische Crack-Version
Geringe Größe, Syntaxhervorhebung, unterstützt keine Code-Eingabeaufforderungsfunktion

ZendStudio 13.5.1 Mac
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Sicherer Prüfungsbrowser
Safe Exam Browser ist eine sichere Browserumgebung für die sichere Teilnahme an Online-Prüfungen. Diese Software verwandelt jeden Computer in einen sicheren Arbeitsplatz. Es kontrolliert den Zugriff auf alle Dienstprogramme und verhindert, dass Schüler nicht autorisierte Ressourcen nutzen.

VSCode Windows 64-Bit-Download
Ein kostenloser und leistungsstarker IDE-Editor von Microsoft
