2012-12-20 91 views
0

我有一個簡單的類,存儲有關出席會議人員的信息:使用連接的字符串作爲對象名稱創建新對象

class Attendee: 
    def __init__(self, fName, lName, email): 
     self.fName = fName 
     self.lName = lName 
     self.email = email 

我試圖用兩個用戶inputed字符串的組合,創造參會對象:

#get inputs from user: 
fName = input("First name: ") 
lName = input("Last name: ") 
    ..... 

newObjectName = fName[0] + lName 

newObjectName = Attendee(fName, lName, email) 

很明顯,這是行不通的 - 但你明白了我正在拍攝的想法。 我知道在C#中,你可以通過創建一個新的對象:

Attendee newObjectName = new Attendee(fName, lName, email) 

這將如何轉換到Python?

感謝

+0

你是說你想'newObjectName'是變量的名稱?也就是說,如果'newObjectName =「bob」',那麼'bob = Attendee(...)'? –

+0

@Lattyware - 正是 – tloveless

+2

btw:我不認爲你展示的C#代碼做的是你想要的...... –

回答

4

如果你想擁有可變的變量名,那麼你想有一個不同的數據結構來代替。例如,一本字典效果很好:

attendees = {} 
newObjectName = fName[0] + lName 
attendees[newObjectName] = Attendee(fName, lName, email) 
1

你已經擁有的代碼在你的問題 - newObjectName = Attendee(fName, lName, email)

0
低於與會者類

定義制定者 到您的數據屬性(變量) 每當數據

創建對象和用戶輸入,將設定值

,你還可以定義這是用來按需檢索這些數據 干將

海峽最後一行將打印對象狀態的STRI納克

class Attendee: 

    def __init__(self, fName, lName, email): 

     self.fName = fName 
     self.lName = lName 
     self.email = email 

    def set_fName(self, fName): 
     self.__fName = fName 

    def set_lName(self, lName): 
     self.__lName = lName 

    def set_email(self, email): 
     self.__email = email 

    def get_fName(self, fName): 
     return self.__fName 

    def get_lName(self, lName): 
     return self.__lName 

    def get_email(self, email): 
     return self.__email 

    def __str__(self): 
     return "First name: " + self.__fName + "\nLast name: " + self.__lName + "\nEmail: " + self.__email 
下面

是請求用戶輸入 並創建一個類對象(New_attendee類的) 我加入其中首次創建空的字典(主程序的一例= {} ) 並且每個條目被存儲在字典

def main(): 

    NewAttendee = {} 

    again = 'y' 

    while again == 'y': 

     fName = input("First name: ") 
     lName = input("Last name: ") 
     email = input("Email: ") 

     entry = Attendee(fName,lName, email) 

     if fName not in NewAttendee: 
      NewAttendee[fName] = entry 
      print('The new attendee has been added') 
     else: 
      print('That name already exists.') 

     again = input('Do you want to add a new attendee? \'y\' for yes -->') 

main() 

希望有所幫助! PS:我沒有把STR(對象狀態作爲字符串)轉化爲行動

相關問題