私は現在、学校プロジェクト用の単純なOregon Trailクローンを作成しています。 pygameの現在のバージョンはPython 2にしか上がらず、Python 3を使用するのに慣れているので、このゲームではTkinterを使用したいと思います。ゲームのさまざまな部分を別々のpyファイルに分けました(main.py、names.py 、occupations.py、store.py、game.py)、それらをフォルダに入れて整理してください。私はすでにウェルカムスクリーンのコードと、main.py、names.pyのコードと、occupations.pyのコードを入力しました。コードを実行すると、「名前」という名前が定義されていないというエラーが表示されます。 namesファイルでは、names()という名前の関数を作成し、それをメインファイルで実行しました。私のコードで何が間違っていますか?NameError:名前 'names'が定義されていません
# main.py
from tkinter import *
from names import *
from occupations import *
from store import *
from game import *
root = Tk()
root.resizable(width=True, height=True)
root.wm_title('Oregon Trail')
root.geometry("200x75")
canvas = Canvas(root,width=400,height=200)
canvas.pack()
welcome = Label(canvas,
font = ('System',14,'bold'),
text = 'Oregon Trail')
welcome.grid(row=0,sticky=(N,S,E,W))
play = None
def playbuttoncommands():
canvas.pack_forget()
play.grid_forget()
welcome.grid_forget()
names()
play = Button(canvas,
font = 'System',
text = 'Travel the Trail',
command = playbuttoncommands)
play.grid(row=1,sticky=(N,S,E,W))
root.mainloop()
# names.py
from tkinter import *
from occupations import *
from store import *
from game import *
from main import *
def names():
canvas2 = Canvas(root,width=400,height=200)
canvas.pack()
root.geometry("400x200")
namelabel = Label(root,
font = 'System',
text = 'Please enter the names of your travel group:')
namelabel.grid(row=1,sticky=N)
name1 = ''
name1entry = Entry(root,textvariable=name1)
name1entry.grid(row=2,sticky=N)
name2 = ''
name2entry = Entry(root,textvariable=name2)
name2entry.grid(row=3, sticky=N)
name3 = ''
name3entry = Entry(root,textvariable=name3)
name3entry.grid(row=4,sticky=N)
name4 = ''
name4entry = Entry(root,textvariable=name4)
name4entry.grid(row=5,sticky=N)
name5 = ''
name5entry = Entry(root,textvariable=name5)
name5entry.grid(row=6,sticky=N)
enternames = Button(text = 'Continue', command = submitnames)
enternames.grid(row=7,sticky=N)
# occupations.py
from tkinter import *
from names import *
from store import *
from game import *
from main import *
def submitnames():
name1 = name1entry.get()
name2 = name2entry.get()
name3 = name3entry.get()
name4 = name4entry.get()
name5 = name5entry.get()
# Full Error Report
Exception in Tkinter callback
Traceback (most recent call last):
File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/tkinter/__init__.py", line 1550, in __call__
return self.func(*args)
File ***************/main.py", line 33, in playbuttoncommands
names()
NameError: name 'names' is not defined