Итак, я делаю игру, и я использую Tkinter и Python 2.7, и я хочу хранить данные карты в файлах. Я пытаюсь создать меню, чтобы открыть файл и установить переменную. У меня возникла проблема с определением функции, используемой на кнопке Tkinter.Функция вызова Python, определенная в классе
Открывается окно Tkinter, но когда я нажимаю кнопку, это дает ошибку.
Код:
#readfiles.py
class maps(object):
def __init__(self):
self.data
def mapset(var):
data = var
fselect = Tk()
...
buttons = Frame(fselect).pack()
Label(fselect, text="Select maps in folder:")
for i in listdir('./maps/'):
if i[-4:] == ".pvm":
Button(buttons, text=i[:-4], command=lambda i=i: mapset(open('./maps/'+i, 'r').read())).pack()
NameError: global name 'mapset' is not defined
Кроме того, как я могу получить доступ к data
переменной в maps
(так было бы maps.data
, справа) в другом файле?
#main.py
from readfiles import *
print maps.data
AttributeError: type object 'maps' has no attribute 'data'
Позвольте мне знать, если вам нужна дополнительная информация. Кроме того, print "Happy New Years!
Является ли ваш отступ правильным? Является ли '' 'mapset''' атрибутом' '' maps'''? – wwii
Похож на 'def mapset (var):' и его тело нужно отменить еще раз – andy9775
Вы никогда не вызываете функцию 'maps()' для создания объекта. И 'self.data' должен быть' self.data = something'. – Barmar