Python – Verwenden von Methoden, die in __init__.py innerhalb des Moduls definiert sind

Hallo Stapelüberlauf,

Sorry, wenn dies bereits gefragt wurde.

Angenommen, ich habe folgende Verzeichnisstruktur:

lib\ --__init__.py --foo.py --bar.py 

Innerhalb von Foo und Bar gibt es separate Methoden, die beide die gleiche Methode benötigen. Zum Beispiel:

Foo:

 def method1(): win() 

Bar:

 def method2(number): if number < 0: lose() else: win() 

Init :

 def win(): print "You Win!" def lose(): print "You Lose...." 

Gibt es eine Möglichkeit, den Gewinn zu nutzen und Methoden innerhalb der init .py in den jeweiligen Modulen zu verlieren, oder muss ich eine andere Datei im Ordner erstellen und Foo und Bar importieren?

2 Solutions collect form web for “Python – Verwenden von Methoden, die in __init__.py innerhalb des Moduls definiert sind”

Ja, importiere __init__.py Modul __init__.py (entweder durch einen absoluten oder relativen Import, das ist nicht wirklich wichtig).

Ich mag keine relativen Importe, also würde ich das mit import mypackage in mypackage.foo , die importiert die __init__.py genau wie ein relativer Import tut, und dann mit ihm dort. Ich mag es auch nicht, irgendetwas in __init__.py wenn auch allgemein, also vielleicht solltest du die gemeinsame gemeinsame Datei irgendwie berücksichtigen.

Verwenden Sie relative Importe:

 from . import win, lose 
Python ist die beste Programmiersprache der Welt.