actionbrowser.com
sbfly User Beiträge: 32 Registriert: Montag 17. Oktober 2011, 14:57 Mein Python skript ist nun sehr unübersichtlich geworden, deswegen habe ich mir gedacht alle Funktionen in seperate Dateien auszugliedern: nun habe ich mehrere Funktionen in einzelne Dateien in den Ordner funktionen kopiert. folgender Code ist in einer dieser Dateien () als Beispiel Aufrufen möchte ich diese Funktion mit folgendem Schritt Code: Alles auswählen import sys import os fpath= "funktionen/" ((fpath)) import test1 Leider funktioniert dies so nicht was mache ich falsch? Sirius3 Beiträge: 15951 Registriert: Sonntag 21. Oktober 2012, 17:20 Donnerstag 26. Module in Python nutzen: Programmcode-Sammlung für Projekte. März 2015, 08:56 @sbfly: befindet sich der Ordner funktionen wirklich im aktuellen Verzeichnis, also nicht das Verzeichnis in dem Dein Hauptprogramm liegt, sondern dem Verzeichnis von dem Du das Skript gestartet hast? Wie Du das beschreibst, hört es sich an, als ob Du die Unübersichtlichkeit in einer Datei durch die Unübersichtlichkeit von vielen Dateien ersetzt hast.
0 >>> sinus(pi) 1. 2246467991473532e-16 Modul-Arten Es gibt verschiedene Modul-Arten: in Python geschrieben Endung: Dynamisch geladene C-Module Endung:,,,, usw. C-Module, die mit dem Interpreter gelinkt sind: Um eine Liste dieser Module zu erhalten: import sys print sys. builtin_module_names Falls es sich um ein Built-in-Modul handelt, erhält man eine Fehlermeldung. Suchpfad für Module Wenn man ein Modul z. B. abc importiert, sucht der Interpreter nach in der folgenden Reihenfolge: Im aktuellen Verzeichnis PYTHONPATH Falls PYTHONPATH nicht gesetzt ist, wird installationsabhängig im Default-Pfad gesucht, also unter Linux/Unix z. in /usr/lib/python2. 5. Im folgenden sehen wir, wie man herausfinden kann, wo sich ein Modul befindet: >>> import math >>> math. Python funktion aus anderer datei aufrufen 1. __file__ '/usr/lib/python2. 5/lib-dynload/' >>> import random >>> random. 5/' Inhalt eines Moduls Mit der build-in-Funktion dir() kann man sich die in einem Modul definierten Namen ausgeben lassen. >>> dir(math) ['__doc__', '__file__', '__name__', 'acos', 'asin', 'atan', 'atan2', 'ceil', 'cos', 'cosh', 'degrees', 'e', 'exp', 'fabs', 'floor', 'fmod', 'frexp', 'hypot', 'ldexp', 'log', 'log10', 'modf', 'pi', 'pow', 'radians', 'sin', 'sinh', 'sqrt', 'tan', 'tanh'] Ohne Argumente liefert dir() die definierten Namen >>> col = ["red", "green", "blue"] >>> dir() ['__builtins__', '__doc__', '__name__', 'col', 'math'] Eigene Module Die beiden folgenden Funktionen fib(), die den n-ten Fibonacci-Wert zurückliefert, und die Funktion fiblist() werden in einer Datei gespeichert.
Macht man ungern um Namenskonflikte zu vermeiden und man sieht auch so nicht, welche Klassen eigentlich genutzt werden. Python funktion aus anderer datei aufrufen mit. Daher besser gleich folgende Variante! Über die Anweisung from konto import Konto, Pluskonto laden wir beide Modul, die wir dann nutzen können: Fertiger Code in auszuführender Datei Und hier nun unser fertiger Code mit der Variante für den Import beider Klassen: kunde_schulz = Konto("000111555") kunde_schulz. kontostand_anzeigen() ld_einzahlen(400) ld_abheben(150) kunde_minderjaehrig. kontostand_anzeigen() ld_einzahlen(200) ld_abheben(101) Als Ausgabe erhalten wir: aktueller Kontostand: 0 aktueller Geldbestand der Bank: 0 Geld wird eingezahlt: 400 Geld wird abgehoben: 150 aktueller Kontostand: 250 aktueller Geldbestand der Bank: 250 Geld wird eingezahlt: 200 Geld soll vom Pluskonto abgehoben werden: 101 Maximal verfügbar ist gerade: 200 Auszahlen von Pluskonto: 101 Geld wird abgehoben: 101 aktueller Kontostand: 99 aktueller Geldbestand der Bank: 349 Wer nachrechnen will, das passt mit der doppelten Buchführung so:).