私はゲームを作っています.TkinterとPython 2.7を使用しています。マップデータをファイルに保存したいと思います。私はファイルを開き、変数に設定するためのメニューを作ろうとしています。 Tkinter Buttonで使用する関数を定義するのに問題があります。クラスで定義された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
また、どのように私は別のファイルに(そう、それは右、maps.data
だろう)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