Variablen aus Modul importieren

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
Gabelmensch
User
Beiträge: 79
Registriert: Montag 12. Oktober 2009, 11:50

Hallo,

ich moechte irgendwie Variablen an einer Stelle definieren, die ich in jedem Python programm nutzen kann. Am besten via Modul.

Beispiel:

Code: Alles auswählen

var1 = '/path1/file23'
var2 = 42
Im Programm mache ich jetzt:

Code: Alles auswählen

import variablen
Und die Variablen sind ganz normal nutzbar. Ist sowas irgendwie moeglich?
sma
User
Beiträge: 3018
Registriert: Montag 19. November 2007, 19:57
Wohnort: Kiel

Ja, das ist genau so möglich, wie du es beschreibst.

Stefan
Gabelmensch
User
Beiträge: 79
Registriert: Montag 12. Oktober 2009, 11:50

Hmm, nicht genau so. Aber so:

haupt.py:

Code: Alles auswählen

#!/usr/bin/env python
# -*- coding: utf-8 -*-

from variab import *

print var1
print var2
variab.py:

Code: Alles auswählen

global var1
global var2

var1 = '/path1/file23'
var2 = 42
Vielen Dank.
Pekh
User
Beiträge: 482
Registriert: Donnerstag 22. Mai 2008, 09:09

Wozu 'global'? Das macht an der Stelle doch überhaupt keinen Sinn?
Gabelmensch
User
Beiträge: 79
Registriert: Montag 12. Oktober 2009, 11:50

Stimmt, ich war irgendwie bei Funktionen.
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Gabelmensch hat geschrieben:Stimmt, ich war irgendwie bei Funktionen.
Und selbst dort sollte man es nicht nutzen.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Gabelmensch
User
Beiträge: 79
Registriert: Montag 12. Oktober 2009, 11:50

Ich weiss.
derdon
User
Beiträge: 1316
Registriert: Freitag 24. Oktober 2008, 14:32

Und *-Importe sollte man auch nicht nutzen: http://docs.python.org/howto/doanddont. ... ule-import
Pekh
User
Beiträge: 482
Registriert: Donnerstag 22. Mai 2008, 09:09

In diesem konkreten Fall kann das schon Sinn machen. Wenn man es generell nicht machen sollte, würde es diese Möglichkeit nicht geben.
derdon
User
Beiträge: 1316
Registriert: Freitag 24. Oktober 2008, 14:32

Ja, das habe ich auch nach Abschicken des Posts gemerkt. Andererseits kann es nicht schaden, Einsteigern darauf im Allgemeinen hinzuweisen.
Gabelmensch
User
Beiträge: 79
Registriert: Montag 12. Oktober 2009, 11:50

derdon hat geschrieben:Und *-Importe sollte man auch nicht nutzen: http://docs.python.org/howto/doanddont. ... ule-import
Ich weiss. :mrgreen:
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Pekh hat geschrieben:Wenn man es generell nicht machen sollte, würde es diese Möglichkeit nicht geben.
Ich finde das eigentlich nur, wenn dann in der REPL sinnvoll und selbst da mache ich es eigentlich nie. Liegt vielleicht auch daran, dass bei mir IPython seit über 4 Monaten läuft und ich den Überblick verloren habe was ich wann importiert habe.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Benutzeravatar
jbs
User
Beiträge: 953
Registriert: Mittwoch 24. Juni 2009, 13:13
Wohnort: Postdam

In den Beispielen von Elixir wird mit * importiert und ich habe mich gefragt, ob das nicht schlechter Stil ist. Aber wenn man selber eine `model.py` schreibt, merkt man die Gründe dafür.

Wie handhabt ihr soetwas denn?
[url=http://wiki.python-forum.de/PEP%208%20%28%C3%9Cbersetzung%29]PEP 8[/url] - Quak!
[url=http://tutorial.pocoo.org/index.html]Tutorial in Deutsch[/url]
DasIch
User
Beiträge: 2718
Registriert: Montag 19. Mai 2008, 04:21
Wohnort: Berlin

Mal abgesehen von sys, os und json fällt mir gerade nichts ein für dass ich kein from ... import ... nutze.
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

jbs hat geschrieben:In den Beispielen von Elixir wird mit * importiert und ich habe mich gefragt, ob das nicht schlechter Stil ist. Aber wenn man selber eine `model.py` schreibt, merkt man die Gründe dafür.
Also in den ``models.py`` von Django habe ich keine Sternchen-Importe und es ist auch nicht übermäßig verbose. Vielleicht ist Elixir da geschwätziger, keine Ahnung.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
derdon
User
Beiträge: 1316
Registriert: Freitag 24. Oktober 2008, 14:32

DasIch hat geschrieben:Mal abgesehen von sys, os und json fällt mir gerade nichts ein für dass ich kein from ... import ... nutze.
Du hast pickle vergessen ;) Oder du benutzt pickle so gut wie nie (was ich mal vermute).
DasIch
User
Beiträge: 2718
Registriert: Montag 19. Mai 2008, 04:21
Wohnort: Berlin

derdon hat geschrieben:Du hast pickle vergessen ;) Oder du benutzt pickle so gut wie nie (was ich mal vermute).
Ich kann mich nicht erinnern es je genutzt zu haben.
Antworten