我需要帮助尝试调用两个不同函数的变量(我认为)。我是python的新手,但是我正在努力学习,刚刚开始,我坚持这一点,我已经在网上搜索过,无法找到任何内容。
def newAccount(): #New account window
create = Tk()
create.title("New Account")
create.minsize(width=200, height=150)
create.maxsize(width=400, height=300)
L1 = Label(create, text= "New User:").grid(column= 1, row= 1)
E1 = Entry(create, bd= 3)
E1.grid(column= 1, row= 2)
L2 = Label(create, text="Password:").grid(column=1, row=3)
E2 = Entry(create, bd=3, show="*")
E2.grid(column=1, row=5)
L3 = Label(create, text="Comfirmation").grid(column=1, row=6)
E3 = Entry(create, bd=3, show="*")
E3.grid(column=1, row=7)
def createNew():
User = E1.get()
Pass = E2.get()
if(Pass == E3.get()):
Pass == Pass
create.destroy()
else:
O1 = Message(create, text= "Passwords don't match.", fg= "red", width= 250).grid(column= 1, row= 10)
E2.delete(0, END)
E3.delete(0, END)
return User, Pass
def quit():
create.destroy()
B1 = Button(create, text="Create", command= createNew).grid(column= 1, row= 8)
create.close = Button(create, text="Quit", command= quit).grid(column=1, row=9)
def callback():
User = [Username]
Pass = [Password]
if(User == User):
if(Pass == Pass):
print(".")
我正在尝试使用来自' def createNew()'的用户和密码。 并在&#;; def回调()'
中使用它答案 0 :(得分:0)
分享变量的最简单,最有效的解决方案'跨函数将使用面向对象的方法(OOP)进行编程。
但简而言之,OOP使用类来创建对象。每个类都有属性(变量,与该对象相关的特征)和方法(用于“使用这些属性做事情的函数”)。
OOP将在您的方案中提供的主要功能是INHERITANCE。继承允许具有类的函数共享变量,但它也允许类继承其他类的属性。
查看您的代码我假设您正在尝试创建登录功能。使用您的示例获取E1的值使用下面的代码
CODE:
class Account(tk.Tk):
def __init__(self):
tk.Tk.__init__(self)
'enter your code here e.g your labels and entry widgets'
#在你的班级中声明E1时,你必须添加自己。
self.E1 = Entry(self)
self.E1.grid(blah blah)
def createNew(self):
User = self.E1.get()
完整的小界面示例:
from tkinter import *
class Create:
def __init__(self, master):
frame = Frame(master)
frame.pack()
userInput = Label(frame, text="Enter text to pass to another funtion:")
userInput.grid(row=1, column=0, sticky="w")
self.userEntry=Entry(frame)
self.userEntry.grid(row=1, column=1, sticky="w")
submit = Button(frame, text="submit", command=self.getVariable)
submit.grid(row=3,columnspan=2)
def getVariable(self):
text = self.userEntry.get()
print(text)
root = Tk()
app = Create(root)
root.mainloop()
传递必须将变量声明为self.variableName的变量,然后将self作为参数传递给要调用该变量的函数,然后只引用它。
我建议您观看我在顶部链接的Sentdex视频,他详细解释了这一点,并向您展示了如何实现它。
祝你好运,玩得开心!
答案 1 :(得分:0)
您需要在任何函数之外声明变量。
variable_name = "" # Whatever
要在函数中使用它,只需将其作为参数传递。
function_name(variable_name)
从函数中更改变量,需要将其声明为" global"
def change_variable():
global variable_name
variable_name = "Hi"
喜欢这个
def change_variable():
global var
var = "Hello"
def process_variable(x):
print(var)
var = "" # declare the variable or list or whatever
change_variable() # assign new values or amend existing ones
process_variable(var) # use the variables values in another function