Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/315.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何在不使用全局变量的情况下运行此代码? (为了让错误显示你必须按下注册按钮),我认为自己处于初级的编码水平。我正在为学校里的受控评估做一个项目,它是为一个想象中的公会做的,我必须创建一个界面,有一个登录/注册系统,一个发票系统和一个订单系统。这些变量以前是全局变量,我试图弄清楚如何运行相同的代码而不必使它们成为全局变量。我被告知使用参数,出现了“TypeError:FSSignup()缺少3个必需的位置参数:'eUsername'、'ePassword'和'signupPage'。 这是我的密码: from tkinter import * import os details = 'tempfile.temp' # sets variable details as tempfile def signup(): # signup subroutine signupPage = Tk() # makes empty signup window signupPage.geometry("450x400") # sets size of window 500 pixels by 300 signupPage.title("Signup for The Guild of Ceramic Arts") # adds a title to the window introL = Label(signupPage, text="Please enter your details: ", font=("Arial", 15)) # heading introL.place(x=105, y=10) userL = Label(signupPage, text="New Username: ", font=("Arial", 14)) # user's detail's labels pwL = Label(signupPage, text="New Password: ", font=("Arial", 14)) userL.place(x=20, y=50) pwL.place(x=20, y=80) eUsername = Entry(signupPage, font=("Arial", 14)) # user's detail's entries ePassword = Entry(signupPage, font=("Arial", 14), show='*') eUsername.place(x=170, y=50) # Places entries for details ePassword.place(x=170, y=80) # adds signup button and command runs the subroutine named 'FSSignup' short for file save sign up signupB = Button(signupPage, text="Signup", font=("Arial", 12), command=FSSignup) signupB.place(x=180, y=360) mainloop() def FSSignup(eUsername, ePassword, signupPage): with open(details, 'w') as f: f.write(eUsername.get()) f.write('\n') f.write(ePassword.get()) f.write('\n') f.write(eForename.get()) f.write('\n') f.write(eSurname.get()) f.write('\n') f.write(eEmail.get()) f.write('\n') f.write(ePhoneNum.get()) f.write('\n') f.write(eAddress.get()) f.write('\n') f.write(eCity_Town.get()) f.write('\n') f.write(eCounty.get()) f.close() signupPage.destroy() login() def login(): loginPage = Tk() loginPage.geometry("400x200") loginPage.title("Login for the Guild of Ceramic Arts") headingL = Label(loginPage, text="Please login: ", font=("Arial", 15)) headingL.place(x=140, y=20) userL = Label(loginPage, text="Username: ", font=("Arial", 14)) passwordL = Label(loginPage, text="Password: ", font=("Arial", 14)) userL.place(x=20, y=50) passwordL.place(x=20, y=80) eUser = Entry(loginPage, font=("Arial", 14)) epw = Entry(loginPage, font=("Arial", 14), show='*') eUser.place(x=120, y=50) epw.place(x=120, y=80) loginB = Button(loginPage, text='Login', font=("Arial", 12), command=checkLogin) loginB.place(x=130, y=120) delUserB = Button(loginPage, text='Delete User', fg='red', command=delUser, font=("Arial", 12)) delUserB.place(x=190, y=120) mainloop() def checkLogin(eUser, epw): with open(details) as f: data = f.readlines() uname = data[0].rstrip() pword = data[1].rstrip() if eUser.get() == uname and epw.get() == pword: return mainMenu() else: r = Tk() r.title('error') r.geometry('150x50') rlbl = Label(r, text='\n Invalid Login') rlbl.pack() r.mainloop() def delUser(loginPage): os.remove(details) # Removes the file loginPage.destroy() # Destroys the login window signup() # And goes back to the start def mainMenu(): pass signup()_Python_Tkinter_Parameters_Global_Local - Fatal编程技术网

Python 如何在不使用全局变量的情况下运行此代码? (为了让错误显示你必须按下注册按钮),我认为自己处于初级的编码水平。我正在为学校里的受控评估做一个项目,它是为一个想象中的公会做的,我必须创建一个界面,有一个登录/注册系统,一个发票系统和一个订单系统。这些变量以前是全局变量,我试图弄清楚如何运行相同的代码而不必使它们成为全局变量。我被告知使用参数,出现了“TypeError:FSSignup()缺少3个必需的位置参数:'eUsername'、'ePassword'和'signupPage'。 这是我的密码: from tkinter import * import os details = 'tempfile.temp' # sets variable details as tempfile def signup(): # signup subroutine signupPage = Tk() # makes empty signup window signupPage.geometry("450x400") # sets size of window 500 pixels by 300 signupPage.title("Signup for The Guild of Ceramic Arts") # adds a title to the window introL = Label(signupPage, text="Please enter your details: ", font=("Arial", 15)) # heading introL.place(x=105, y=10) userL = Label(signupPage, text="New Username: ", font=("Arial", 14)) # user's detail's labels pwL = Label(signupPage, text="New Password: ", font=("Arial", 14)) userL.place(x=20, y=50) pwL.place(x=20, y=80) eUsername = Entry(signupPage, font=("Arial", 14)) # user's detail's entries ePassword = Entry(signupPage, font=("Arial", 14), show='*') eUsername.place(x=170, y=50) # Places entries for details ePassword.place(x=170, y=80) # adds signup button and command runs the subroutine named 'FSSignup' short for file save sign up signupB = Button(signupPage, text="Signup", font=("Arial", 12), command=FSSignup) signupB.place(x=180, y=360) mainloop() def FSSignup(eUsername, ePassword, signupPage): with open(details, 'w') as f: f.write(eUsername.get()) f.write('\n') f.write(ePassword.get()) f.write('\n') f.write(eForename.get()) f.write('\n') f.write(eSurname.get()) f.write('\n') f.write(eEmail.get()) f.write('\n') f.write(ePhoneNum.get()) f.write('\n') f.write(eAddress.get()) f.write('\n') f.write(eCity_Town.get()) f.write('\n') f.write(eCounty.get()) f.close() signupPage.destroy() login() def login(): loginPage = Tk() loginPage.geometry("400x200") loginPage.title("Login for the Guild of Ceramic Arts") headingL = Label(loginPage, text="Please login: ", font=("Arial", 15)) headingL.place(x=140, y=20) userL = Label(loginPage, text="Username: ", font=("Arial", 14)) passwordL = Label(loginPage, text="Password: ", font=("Arial", 14)) userL.place(x=20, y=50) passwordL.place(x=20, y=80) eUser = Entry(loginPage, font=("Arial", 14)) epw = Entry(loginPage, font=("Arial", 14), show='*') eUser.place(x=120, y=50) epw.place(x=120, y=80) loginB = Button(loginPage, text='Login', font=("Arial", 12), command=checkLogin) loginB.place(x=130, y=120) delUserB = Button(loginPage, text='Delete User', fg='red', command=delUser, font=("Arial", 12)) delUserB.place(x=190, y=120) mainloop() def checkLogin(eUser, epw): with open(details) as f: data = f.readlines() uname = data[0].rstrip() pword = data[1].rstrip() if eUser.get() == uname and epw.get() == pword: return mainMenu() else: r = Tk() r.title('error') r.geometry('150x50') rlbl = Label(r, text='\n Invalid Login') rlbl.pack() r.mainloop() def delUser(loginPage): os.remove(details) # Removes the file loginPage.destroy() # Destroys the login window signup() # And goes back to the start def mainMenu(): pass signup()

Python 如何在不使用全局变量的情况下运行此代码? (为了让错误显示你必须按下注册按钮),我认为自己处于初级的编码水平。我正在为学校里的受控评估做一个项目,它是为一个想象中的公会做的,我必须创建一个界面,有一个登录/注册系统,一个发票系统和一个订单系统。这些变量以前是全局变量,我试图弄清楚如何运行相同的代码而不必使它们成为全局变量。我被告知使用参数,出现了“TypeError:FSSignup()缺少3个必需的位置参数:'eUsername'、'ePassword'和'signupPage'。 这是我的密码: from tkinter import * import os details = 'tempfile.temp' # sets variable details as tempfile def signup(): # signup subroutine signupPage = Tk() # makes empty signup window signupPage.geometry("450x400") # sets size of window 500 pixels by 300 signupPage.title("Signup for The Guild of Ceramic Arts") # adds a title to the window introL = Label(signupPage, text="Please enter your details: ", font=("Arial", 15)) # heading introL.place(x=105, y=10) userL = Label(signupPage, text="New Username: ", font=("Arial", 14)) # user's detail's labels pwL = Label(signupPage, text="New Password: ", font=("Arial", 14)) userL.place(x=20, y=50) pwL.place(x=20, y=80) eUsername = Entry(signupPage, font=("Arial", 14)) # user's detail's entries ePassword = Entry(signupPage, font=("Arial", 14), show='*') eUsername.place(x=170, y=50) # Places entries for details ePassword.place(x=170, y=80) # adds signup button and command runs the subroutine named 'FSSignup' short for file save sign up signupB = Button(signupPage, text="Signup", font=("Arial", 12), command=FSSignup) signupB.place(x=180, y=360) mainloop() def FSSignup(eUsername, ePassword, signupPage): with open(details, 'w') as f: f.write(eUsername.get()) f.write('\n') f.write(ePassword.get()) f.write('\n') f.write(eForename.get()) f.write('\n') f.write(eSurname.get()) f.write('\n') f.write(eEmail.get()) f.write('\n') f.write(ePhoneNum.get()) f.write('\n') f.write(eAddress.get()) f.write('\n') f.write(eCity_Town.get()) f.write('\n') f.write(eCounty.get()) f.close() signupPage.destroy() login() def login(): loginPage = Tk() loginPage.geometry("400x200") loginPage.title("Login for the Guild of Ceramic Arts") headingL = Label(loginPage, text="Please login: ", font=("Arial", 15)) headingL.place(x=140, y=20) userL = Label(loginPage, text="Username: ", font=("Arial", 14)) passwordL = Label(loginPage, text="Password: ", font=("Arial", 14)) userL.place(x=20, y=50) passwordL.place(x=20, y=80) eUser = Entry(loginPage, font=("Arial", 14)) epw = Entry(loginPage, font=("Arial", 14), show='*') eUser.place(x=120, y=50) epw.place(x=120, y=80) loginB = Button(loginPage, text='Login', font=("Arial", 12), command=checkLogin) loginB.place(x=130, y=120) delUserB = Button(loginPage, text='Delete User', fg='red', command=delUser, font=("Arial", 12)) delUserB.place(x=190, y=120) mainloop() def checkLogin(eUser, epw): with open(details) as f: data = f.readlines() uname = data[0].rstrip() pword = data[1].rstrip() if eUser.get() == uname and epw.get() == pword: return mainMenu() else: r = Tk() r.title('error') r.geometry('150x50') rlbl = Label(r, text='\n Invalid Login') rlbl.pack() r.mainloop() def delUser(loginPage): os.remove(details) # Removes the file loginPage.destroy() # Destroys the login window signup() # And goes back to the start def mainMenu(): pass signup(),python,tkinter,parameters,global,local,Python,Tkinter,Parameters,Global,Local,将代码放入main功能中。这样可以避免使用任何全局变量。您是否尝试创建一个全局变量?您发布的代码太多,不适合stackoverflow。请尽量减少到最低限度。如果您对10个全局变量有问题,可以仅用一个全局变量来说明相同的问题。Read和“”TypeError:FSSignup()缺少3个必需的位置参数:::您已定义:def FSSignup(eUsername、ePassword、signupPage):,但您调用:command=FSSignup。您认为这些参数来自何处?第一个问题是您有多个t

将代码放入
main
功能中。这样可以避免使用任何全局变量。

您是否尝试创建一个全局变量?您发布的代码太多,不适合stackoverflow。请尽量减少到最低限度。如果您对10个全局变量有问题,可以仅用一个全局变量来说明相同的问题。Read和“”TypeError:FSSignup()缺少3个必需的位置参数:::您已定义:
def FSSignup(eUsername、ePassword、signupPage):
,但您调用:
command=FSSignup
。您认为这些参数来自何处?第一个问题是您有多个tk实例。您应该更新框架或新的顶级窗口,而不是创建多个tk实例。第二个问题是您在函数中构建所有内容。因为您这样做,您别无选择,只能使用全局变量或将变量从一个函数传递到另一个函数。最好的选择是像使用OOP一样使用类来构建此函数,这样可以避免使用类属性的全局变量。下一个最好的选择是在全局命名空间中构建tk实例,并从全局命名空间开始在函数之间传递变量。