Glob. Variable oder Funkt. von einem ander file.py benutzen

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
Campionissimo
User
Beiträge: 102
Registriert: Montag 28. März 2011, 07:50

Hallo Zusammen,

ich bin leider, wahrscheinlich, an einer Kleinigkeit gescheitert;(
Ich möchte von einem file.py mit init.py eine hex Variable an einen anderen file.py übergeben und benutzen.

Gibt da was ?
Hab schon was gefunden wegen den Modulen, aber immer sehr mager ausgeführt.
Vielen Dank

Gruß
Benutzeravatar
cofi
Python-Forum Veteran
Beiträge: 4432
Registriert: Sonntag 30. März 2008, 04:16
Wohnort: RGFybXN0YWR0

Nein, das kannst du nicht. Aber du kannst den Wert an Funktionen/... uebergeben.

Noch besser, wenn es sich um statische Konfiguration handelt, kannst du die Variable in ein drittes Modul packen und von beiden anderen Dateien importieren.

Aber es fehlen Details zu deinem Problem, was ist die Variable, wo kommt sie her, wie wird sie benutzt...
Campionissimo
User
Beiträge: 102
Registriert: Montag 28. März 2011, 07:50

file1.py
Also mein Wert in einer def funktion
z.B.
def var()
global x
x = 0x4D5

file2.py
Diese Variable soll dann von einer anderen Funktion übernommen werden:
num=asdsad.asdsad.var()
Hallo.Benutzen(Daten, "ansteuern", "funk", "einmal", num, True)

so ungefähr Namen usw. stimmten nicht geht mir nur um "num" und die Übergabe

Danke
Benutzeravatar
/me
User
Beiträge: 3554
Registriert: Donnerstag 25. Juni 2009, 14:40
Wohnort: Bonn

global ist böse. Versuche, es nicht zu verwenden.

Was mir noch nicht wirklich klar geworden ist, ist allerdings dein Programmaufbau. Sind file1.py und file2.py Bestandteile eines einzigen Programms? Sollen das getrennte Programme sein? Kann es ein, dass du einfach das return-Statement suchst?

Ich habe den Eindruck, als fehlten dir bei Python noch Grundlagen wie du sie im Tutorial findest.
Campionissimo
User
Beiträge: 102
Registriert: Montag 28. März 2011, 07:50

Hallo,

naja das Tutorial ist ja eigentlich ziemlich einfach gemacht (von den Funktionen her)
Es sind zwei Programme. Deswegen file1.py und file2.py
Ich möchte einen festen Wert an das zweite Programm übergeben.
Benutzeravatar
/me
User
Beiträge: 3554
Registriert: Donnerstag 25. Juni 2009, 14:40
Wohnort: Bonn

Campionissimo hat geschrieben:naja das Tutorial ist ja eigentlich ziemlich einfach gemacht (von den Funktionen her)
Das führt dann dazu, das man schon mal elementare Dinge (weit vorne) überliest. Schau dir mal Argument passing an.

Code: Alles auswählen

import sys
print sys.argv
Damit solltest du dann einen Parameter im zweiten Programm problemlos entgegennehmen können. Die Übergabe aus dem ersten Programm regelst du natürlich direkt beim Aufruf des zweiten Programms (ich nehme an, du verwendest subprocess).
Campionissimo
User
Beiträge: 102
Registriert: Montag 28. März 2011, 07:50

So ne kleine Hilfestellung wäre super.
Hat da vielleicht wer ein Beispiel ?

Danke
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Ohne Kommandozeilen-Parsing jetzt:

Code: Alles auswählen

filename = sys.argv[1]
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
derdon
User
Beiträge: 1316
Registriert: Freitag 24. Oktober 2008, 14:32

Und nicht vergessen, einen möglichen IndexError bei nicht übergebenem Dateipfad abzufangen. Außerdem könnte die Datei auch gar nicht existieren.
Antworten