Variable exportieren

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
Gast

Hi
Kann mir jemand sagen wie ich eine Variable exportiere, also nicht nur in einem Programm wo sie definiert wurde, sondern auch in anderen Python-programm, nutzen kann?

Schon mal danke im voraus an alle die mir helfen.
Dookie
Python-Forum Veteran
Beiträge: 2010
Registriert: Freitag 11. Oktober 2002, 18:00
Wohnort: Salzburg
Kontaktdaten:

Hi auch,

explizit exportieren brauchst Du in Python nichts. Alles was in einem Modul, auf Modulebene definiert ist, ist von anderen Scripts aus importierbar.
Wenn Du eine Variable in Funktionen ändern willst, die auch von anderen Scripten importierbar sein soll, must Du diese, innerhalb der Funktion, als global deklarierern, das sollte aber nur in Ausnahmefällen geschehen.


Gruß

Dookie
Gast

Ich glaub du hast mich nicht ganz richtig verstanden, ich meinte, wie ich einer Variablen einen Wert zuweise den ich dann später in anderen Pythonprogrammen wieder abrufen kann und erhöhen kann. Diesen neuen Wert will anschließend weiter verwenden kann.
Gast

Hier ist mein Programm und Variable joker_zaehler will ich über diese Programm hinaus nutzen

Code: Alles auswählen

def Joker(self):
          global joker_zaehler        
          if joker_zaehler >= 3:
              print "Leider Haben Sie den Joker zu oft verwendet"
          else:
              pygame.init()
              size = width, height = 640, 480
              black = 0, 0, 0
              screen = pygame.display.set_mode(size)
              ball = pygame.image.load("Frage50euro01_50,50.bmp")
              ballrect = ball.get_rect()

              screen.fill(black)
              screen.blit(ball, ballrect)
              pygame.display.flip()

              joker_zaehler = joker_zaehler+1
              print joker_zaehler
Dookie
Python-Forum Veteran
Beiträge: 2010
Registriert: Freitag 11. Oktober 2002, 18:00
Wohnort: Salzburg
Kontaktdaten:

hmm das ist kein Programm sondern eine Methode. In jeder Funktion in der "joker_zaehler" verwendet wird, muss diese natürlich auch als global definiert werden. Da Du aber eine Methode hast, gehe ich davon aus, daß Du auch eine eigene Klasse verwendest, dann bietet es sich an "joker_zaehler" als Attribut zu definieren.

Code: Alles auswählen

class Spiel(object):
    __slots__ = ['joker_zaehler']
    def __init__(self):
        self.joker_zaehler = 0
        super(Spiel, self).__init__()

    def Joker(self):
          if self.joker_zaehler >= 3:
              print "Leider Haben Sie den Joker zu oft verwendet"
          else:
              """
              pygame.init()
              size = width, height = 640, 480
              black = 0, 0, 0
              screen = pygame.display.set_mode(size)
              ball = pygame.image.load("Frage50euro01_50,50.bmp")
              ballrect = ball.get_rect()

              screen.fill(black)
              screen.blit(ball, ballrect)
              pygame.display.flip()
              """
              self.joker_zaehler = self.joker_zaehler+1
              print self.joker_zaehler

spiel = Spiel()
print "Jokerzaehler steht auf %d" % spiel.joker_zaehler
spiel.Joker()
print "Jokerzaehler steht auf %d" % spiel.joker_zaehler
Du kannst natürlich auch screen und/oder ball als Attribute definieren.


Gruß

Dookie
Antworten