Seite 1 von 1

Variable exportieren

Verfasst: Sonntag 27. Juni 2004, 12:17
von 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.

Verfasst: Sonntag 27. Juni 2004, 12:33
von Dookie
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

Verfasst: Sonntag 27. Juni 2004, 13:01
von 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.

Verfasst: Sonntag 27. Juni 2004, 13:19
von 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

Verfasst: Sonntag 27. Juni 2004, 14:23
von Dookie
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