Sida 1 av 1

Python problem [LÖST]

Postat: 01 feb 2008, 16:52
av Rasmus
Har fått en liten bugg i mitt python skript/program, vet ej om det är tankefel eller kod fel.
Postar delen av koden där felet ligger:

Kod: Markera allt

	def cha(self,event):
		if cba == "1":
			cba = "0"
		else:
			cba = "1"
		global cba
	def chb(self,event):
		if cbb == "1":
			cbb = "0"
		else:
			cbb = "1"
		global cbb
	def OnClick(self,event):
		if cba == "1":
			print "ett"
		else:
			print cba
		print "mellanrum"
		if cbb == "1":
			print "två"
Problemet är att den svarar "två" även om jag anropar "cha" sen "OnClick", och anropar jag "cha" och "chb" sen "OnClick" svarar den inget (Förutom statusen på "cba" + "mellanrum" förstås)

SV: Python problem

Postat: 01 feb 2008, 18:16
av Lars
Jag tror att global måste ligga innan du använder variabeln. Men det är mer pytonskt att använda t.ex. self.cha, så att variabeln ligger i klassinstansen istället för globalt.

SV: Python problem

Postat: 01 feb 2008, 19:14
av Rasmus
Det funkar inte ändå :( den fårförsig att ändra på cbb istället för cba, kan varbalerna vara förkorta,förlika något annat?

SV: Python problem

Postat: 01 feb 2008, 19:26
av mcNisse
Har du lagt till global i OnClick metoden?

SV: Python problem

Postat: 01 feb 2008, 19:58
av Rasmus
mcNisse skrev: Har du lagt till global i OnClick metoden?
Nej,testar

EDIT: nej, funkade inte :(

Finns det inget liknande funktioner men som ändrar varbalen även utanför funktionen själv?

SV: Python problem

Postat: 02 feb 2008, 16:15
av Rasmus
Fy vad skämmigt, felet var att jag hade gett båda samma "level" och alltså tolkades som en  :-[  ::)