Ich habe ein Projekt mit Object Oriented Programming gestartet, aber ich habe ein wenig Schwierigkeiten, einige grundlegende Regeln über Pfade zu verstehen.Python Pfadregeln
Hier ist die arborescence meines Projekts:
main.py
import sys
sys.path.insert(0, 'classes/')
from Database import Database
Database.py
import sys
sys.path.insert(0, '../database/')
import sqlite3
# in my Database class
def connect(self):
self.conn = sqlite3.connect('database/{}.db'.format(self.name))
self.c = self.conn.cursor()
Instanziierung in main.py VS in Database.py
ProjectDatabase = Database('Project')
ProjectDatabase.connect()
Wenn ich die Instanziierung in der main.py Datei machen und führen Sie es dann muss ich nicht alles in der Datei Database.py ändern.
Aber wenn ich die Instanziierung in der Database.py Datei machen und führen Sie es dann muss ich die Connect-Methode dies ändern:
def connect(self):
self.conn = sqlite3.connect('../database/{}.db'.format(self.name))
self.c = self.conn.cursor()
Ich verstehe nicht, warum ich tun muss, dass und Warum muss ich den sys.path.insert() - Befehl in Database.py nicht ändern, wenn ich die Instanziierung in der Datei main.py mache ... Warum sollte es nicht nur sys.path.insert ('database /') stattdessen ?
Ich hoffe, ich bin hier klar, ich bekomme einfach nicht, wie wir Pfade in unseren Skripten schreiben sollten abhängig davon, welches Skript wir ausführen wollen und abhängig davon, ob eingebettete Skripte in andere wie Klassen Aufruf sind ein Hauptprogramm.
Danke für Ihre Erklärungen!
Ich würde empfehlen zu lesen https://docs.python.org/3/tutorial/modules.html#packages – jonrsharpe