Funktions-Aufruf

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Farmer
User
Beiträge: 11
Registriert: Sonntag 29. Januar 2012, 18:30

Hallo Python-User,
ich habe ein Verständnis-Problem mit dem Aufruf einer Funktion in einem Hauptprogramm.
Ist die Funktionsdefinition im selben Ordner wie das Hauptprogramm, wie im nachfolgenden Beispiel gezeigt,
funktioniert der Funktionsaufruf im Hauptprogramm.

Code: Alles auswählen

# Funktionsdefinition
def area(breite, laenge):
        flaeche = breite * laenge
        umfang  = 2 * (breite + laenge)
        return breite,laenge,flaeche, umfang

# Hauptprogramm
b, l, f, u =area(breite= 3, laenge= 7) # Funktionsaufruf, auf diese Stelle bezieht sich meine Frage
print("Breite:   ", b)
print("Laenge:   ", l)
print("Flaeche:  ", f)
print("Umfang:   ", u)
Wie aber muß die Syntax des Funtionsaufrufs aussehen, wenn z. B. das Hauptprogramm „rechteck.py“ im Pfad
c:\\Python34\Programm\Hauptprogramm\rechteck.py
und die Funktion „area.py“ im Pfad
c:\\Python34\Programm\Unterprogramm\area.py
abgelegt ist?
Wenn mir hier jemand weiterhelfen könnte, wäre ich sehr dankbar!
Gruß
Farmer
BlackJack

@Farmer: Das hat überhaupt nichts mit den Aufrufen zu tun, sondern alleine mit ``import``. Der Pfad zu Packages oder Modulen die imortiert werden sollen muss Python bekannt sein. Da gibt es mehrere Möglichkeiten, je nach dem was man genau machen möchte. Wenn beide Module zum gleichen Programm oder zur gleichen Bibliothek gehören dann solltest Du ein Package daraus machen. Das würde ich generell für alle empfehlen was aus mehr als einem Modul besteht, damit das einen eigenen Namensraum hat und nicht mit der Verwendung von anderen Bibliotheken kollidieren kann.

Also das womit Du Dich beschäftigen solltest sind Packages und der Importmechanismus von Python.

Warum gibt die Funktion die Argumente unverändert zurück? Die hat der Aufrufer doch ganz offensichtlich selbst schon, sonst hätte er sie nicht übergeben können. Und warum gibt die Funktion `area()` neben den Argumenten und der Fläche auch noch den Umfang zurück? Das ist eine sehr eigenartige API.
Antworten