905 Stimmen

Wie importiert man die Klasse innerhalb desselben Verzeichnisses oder Unterverzeichnisses?

Ich habe ein Verzeichnis, in dem alle .py Dateien.

bin/
   main.py
   user.py # where class User resides
   dir.py # where class Dir resides

Ich möchte die Klassen von benutzer.py y dir.py en main.py .
Wie kann ich diese Python-Klassen in main.py ?
Außerdem, wie kann ich die Klasse User wenn benutzer.py in einem Unterverzeichnis liegt?

bin/
    dir.py
    main.py
    usr/
        user.py

15voto

A.Zaben Punkte 665

Sie können das Modul importieren und über seinen Namen darauf zugreifen, wenn Sie Funktionen und Klassen nicht mit Ihren eigenen vermischen wollen

import util # imports util.py

util.clean()
util.setup(4)

oder Sie können die Funktionen und Klassen in Ihren Code importieren

from util import clean, setup
clean()
setup(4)

Sie können wildchar * verwenden, um alles in diesem Modul in Ihren Code zu importieren

from util import *
clean()
setup(4)

11voto

Um es einfacher zu verstehen:

Schritt 1: Wechseln wir in ein Verzeichnis, in das alle Daten aufgenommen werden sollen

$ cd /var/tmp

Schritt 2: Jetzt können wir eine class1.py Datei erstellen, die eine Klasse namens Class1 mit etwas Code enthält

$ cat > class1.py <<\EOF
class Class1:
    OKBLUE = '\033[94m'
    ENDC = '\033[0m'
    OK = OKBLUE + "[Class1 OK]: " + ENDC
EOF

Schritt 3: Jetzt können wir eine class2.py Datei erstellen, die eine Klasse namens Class2 mit etwas Code enthält

$ cat > class2.py <<\EOF
class Class2:
    OKBLUE = '\033[94m'
    ENDC = '\033[0m'
    OK = OKBLUE + "[Class2 OK]: " + ENDC
EOF

Schritt 4: Jetzt können wir eine main.py erstellen, die einmal ausgeführt wird, um Klasse1 und Klasse2 aus 2 verschiedenen Dateien zu verwenden

$ cat > main.py <<\EOF
"""this is how we are actually calling class1.py and  from that file loading Class1"""
from class1 import Class1 
"""this is how we are actually calling class2.py and  from that file loading Class2"""
from class2 import Class2

print Class1.OK
print Class2.OK
EOF

Schritt 5: Starten Sie das Programm

$ python main.py

Die Ausgabe würde lauten

[Class1 OK]: 
[Class2 OK]:

9voto

Python 3


Gleiche directory .

Datei importieren: log.py

Klasse importieren: SampleApp() .

import log
if __name__ == "__main__":
    app = log.SampleApp()
    app.mainloop()

oder

Verzeichnis ist basic .

in Datei importieren: log.py .

Klasse importieren: SampleApp() .

from basic import log
if __name__ == "__main__":
    app = log.SampleApp()
    app.mainloop()

7voto

ceth Punkte 42172
from user import User 
from dir import Dir

5voto

minglyu Punkte 2350

Für Python 3+, nehmen wir an, Sie haben diese Struktur:

A/
  __init__.py
  bar.py
  foo.py

In Ihrem __init__.py Datei, können Sie from . import foo

dann können Sie foo in die Datei bar importieren

# A/bar.py
from foo import YourClass

Der Zweck der __init__.py Dateien ist es, optionalen Initialisierungscode einzuschließen, der ausgeführt wird, wenn verschiedene Ebenen eines Pakets angetroffen werden. alles, was Sie in die __init__.py wird beim Laden des Pakets initialisiert.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X