2013-09-30 148 views
2

对于培训,我想在使用类的系统中自动创建用户。创建动态对象python

这里是我的代码:

class CsrUser(object): 
    def __init__(self, f_name, l_name, login, role, sex, password ='Hot12345'): 
     self.f_name = f_name 
     self.l_name = l_name 
     self.login = login 
     self.role = role 
     self.sex = sex 
     self.password = password 

我要创建用户输入之类的动态对象,

#i want to create something like this 
def get_users_data(): 
    new_user = input("Enter the user name") 
    ... #get all the data 
    new_user = CsrUser(...) 

我想要的对象的名称是值内new_user

+0

与对象的名称,你的意思是引用该对象的变量的名称? – Noctua

+1

什么是本地变量名称?只要它是可读的,你就能得到想要的输出结果? – karthikr

+0

我这么认为,我对所有的课程都是新鲜的。如果我创建new = Class()。所以我希望新的更改为我从用户那里得到的名称。 –

回答

5

我不认为使用变量命名变量(在你的情况下的对象)是一个好主意。如果你想跟踪所有用户的名字,你应该使用字典,而不是:

#make dictionary 
user_data = {} 

#make a new user object 
new_user = CsrUser(...) 

#insert your new user object into the dictionary 
#use new_user.f_name or new_user.l_name here in place of new_user.name (or combine both) 
user_data[new_user.name] = new_user 

#to get a user object out of the dictionary 
a_user = user_data["name_here"] 
+0

我想用我的课程创建20个用户,并跟踪哪一个是什么。这就是我为什么要做一个动态名称 –

+2

字典正是你应该使用的。我看了一下你的个人资料,你的博客说你正在学Python,你应该习惯使用字典。 – Tyler

+0

我想我需要更多地研究它们。我只是不完全理解类概念,以及如何将它们与字典结合起来。 我会尝试你的解决方案,并理解你的答案,然后我会回来。谢谢:-) –