I’m playing around with Kivy a bit and can’t understand why MenuScreen.number_list doesn’t return the list from the MenuScreen class.
class MenuScreen(Screen):
def process(self):
self.text = self.ids.input.text
print(self.text)
pass
def submit(self):
number_list = []
for i in self.text:
number_list.append(int(i))
class GuessScreen(Screen):
def guess(self, number):
for i in MenuScreen.number_list:
if correct == True:
if number == i:
print("Correct, next number")
correct = True
else:
print("Wrong")
correct = False
pass
Advertisement
Answer
You need to declare number_list as a class property so you can use it, otherwise it’s just a variable with its scope only inside the method.
class MenuScreen(Screen):
number_list = []
def process(self):
self.text = self.ids.input.text
print(self.text)
pass
def submit(self):
number_list = []
for i in self.text:
number_list.append(int(i))
class GuessScreen(Screen):
def guess(self, number):
MenuScreen = MenuScreen(Screen)
MenuScreen.submit()
for i in MenuScreen.number_list:
if correct == True:
if number == i:
print("Correct, next number")
correct = True
else:
print("Wrong")
correct = False
pass
And also make sure you create an object for the class and call its methods