2013-09-30 187 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

我想我需要更多地研究它們。我只是不完全理解類概念,以及如何將它們與字典結合起來。 我會嘗試你的解決方案,並理解你的答案,然後我會回來。謝謝:-) –