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.
JavaScript
x
23
23
1
class MenuScreen(Screen):
2
def process(self):
3
self.text = self.ids.input.text
4
print(self.text)
5
pass
6
7
def submit(self):
8
number_list = []
9
for i in self.text:
10
number_list.append(int(i))
11
12
class GuessScreen(Screen):
13
def guess(self, number):
14
for i in MenuScreen.number_list:
15
if correct == True:
16
if number == i:
17
print("Correct, next number")
18
correct = True
19
else:
20
print("Wrong")
21
correct = False
22
pass
23
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.
JavaScript
1
26
26
1
class MenuScreen(Screen):
2
number_list = []
3
def process(self):
4
self.text = self.ids.input.text
5
print(self.text)
6
pass
7
8
def submit(self):
9
number_list = []
10
for i in self.text:
11
number_list.append(int(i))
12
13
class GuessScreen(Screen):
14
def guess(self, number):
15
MenuScreen = MenuScreen(Screen)
16
MenuScreen.submit()
17
for i in MenuScreen.number_list:
18
if correct == True:
19
if number == i:
20
print("Correct, next number")
21
correct = True
22
else:
23
print("Wrong")
24
correct = False
25
pass
26
And also make sure you create an object for the class and call its methods