【发布时间】:2014-11-25 16:00:58
【问题描述】:
我是 python 新手,试图用简单的登录系统编写一个非常简单的游戏,以便以后保存进度。
我正在做用户对象登录并存储在列表中,但程序退出时列表为空,这是我写的
class Users(object):
users = []
def __init__(self, username=None, password=None):
global users #recommended from comment on this website other topic
self.username = username
self.password = password
#print Users.users[0].username #was using to check if object saved to list
#print Users.users[0].password
print "L to login, R to register, Q to quit"
answer = raw_input("> ")
if answer == "r":
username_r = raw_input("Create name: ")
for user in Users.users:
if username_r in user.username:
#if any (self.username == username_r for Users in Users.users):
print "Name already exists"
password_r = raw_input("Create password: ")
u = Users(username_r, password_r)
Users.users.insert(len(Users.users), u)
print "\n------------------\n"
print Users.users[0].username #appends correctly
print Users.users[0].password
我已经尝试并从网站上读取了其他代码,但它不会永久存储在列表中以供以后访问。
此代码仅用于游戏介绍,用户打开后需要登录或注册才能开始。
使用notepad++和powershell,非常感谢任何帮助,谢谢。
【问题讨论】:
-
pickle模块提供数据持久性,或者shelve模块在底层使用pickle,但使用类似于字典的语法。否则,请考虑将信息存储在数据库或其他中间格式(json、xml 等)中。 -
你在哪里看到
global在课堂上的使用? -
我不相信它与 Python 中 pickle 的常见用例重复,因为这种情况可能使用另一种存储机制。
标签: python