在python中的类下访问方法中的变量
如何在另一个类中访问变量username:在python中的类下访问方法中的变量,python,class,methods,static,global,Python,Class,Methods,Static,Global,如何在另一个类中访问变量username: class user_management(wx.Panel): def login(self): # Login Function can be later integrated to allow users access to your program username = self.txt_Username.GetValue() self.frame.SetStatusText("Welco
class user_management(wx.Panel):
def login(self):
# Login Function can be later integrated to allow users access to your program
username = self.txt_Username.GetValue()
self.frame.SetStatusText("Welcome "+username+" to the system!!")
test = MyApp(0)
test.MainLoop()
目前用户是静态的,但是我想让这个用户变量等于从文本字段框中获取的用户名
谁能告诉我怎么做
谢谢当前
用户名
是一个局部变量,无法在方法之外访问。您可以通过执行类似于self.username
的操作将其作为成员变量。用\uuuu init\uuuu
方法初始化它可能是个好主意
编辑:KatrieleAlex的想法是对的。您可能希望将用户名存储在不属于用户管理面板的内容中。这可以是一个全局变量,也可以创建一个用户类
class wizard(wx.wizard.Wizard):
def on_finished(self, evt):
totalscore = self.totalscore
print "Final score: %s" % (totalscore)
user = "c1021358"
db_file="data/data.db"
database_already_exists = os.path.exists(db_file)
con = sqlite3.connect(db_file)
cur = con.cursor()
sql = "INSERT INTO scores (username,totalscore,topic) VALUES ('%s','%s','%s')" % (user,totalscore,tag)
然后,如果您可以从全局用户对象访问用户名:
class User:
def __init__(self, username):
self.username = username
# Create a global "current_user", with an initial username of None
current_user = User(None)
请注意,这是非常一般的(例如,这假设您一次只能支持一个用户),但它应该能够让您开始 当前
username
是一个局部变量,无法在方法之外访问。您可以通过执行类似于self.username
的操作将其作为成员变量。用\uuuu init\uuuu
方法初始化它可能是个好主意
编辑:KatrieleAlex的想法是对的。您可能希望将用户名存储在不属于用户管理面板的内容中。这可以是一个全局变量,也可以创建一个用户类
class wizard(wx.wizard.Wizard):
def on_finished(self, evt):
totalscore = self.totalscore
print "Final score: %s" % (totalscore)
user = "c1021358"
db_file="data/data.db"
database_already_exists = os.path.exists(db_file)
con = sqlite3.connect(db_file)
cur = con.cursor()
sql = "INSERT INTO scores (username,totalscore,topic) VALUES ('%s','%s','%s')" % (user,totalscore,tag)
然后,如果您可以从全局用户对象访问用户名:
class User:
def __init__(self, username):
self.username = username
# Create a global "current_user", with an initial username of None
current_user = User(None)
请注意,这是非常一般的(例如,这假设您一次只能支持一个用户),但它应该能够让您开始 那么,您需要将
username
的值存储在两种方法都可以看到的地方。要做到这一点,最简单的方法(但几乎肯定不是正确的方法)是将其设置为全局变量。您可以使用global
关键字执行此操作:
def login(self):
global current_user
current_user.username = self.txt_Username.GetValue()
但是,您几乎肯定更希望将其存储为某个对象的属性。我不知道你的体系结构,所以我不能告诉你最好把它放在哪里,但是像
用户
或设置
对象这样的东西会很好。好吧,你需要把用户名
的值存储在两种方法都能看到的地方。要做到这一点,最简单的方法(但几乎肯定不是正确的方法)是将其设置为全局变量。您可以使用global
关键字执行此操作:
def login(self):
global current_user
current_user.username = self.txt_Username.GetValue()
但是,您几乎肯定更希望将其存储为某个对象的属性。我不知道你的体系结构,所以我不能告诉你最好把它放在哪里,但是像
用户
或设置
对象这样的东西会很好。@Jeff你能详细介绍一下如何创建对象吗。我将尝试使用全局变量,但老实说,我以前也尝试过。这是代码,我知道它的编码非常糟糕,非常混乱,但请尽你最大的努力阅读它。感谢you@Jeff你能详细说明一下如何创建这个对象吗。我将尝试使用全局变量,但老实说,我以前也尝试过。这是代码,我知道它的编码非常糟糕,非常混乱,但请尽你最大的努力阅读它。非常感谢。