2014-05-19 79 views
-1

我剛剛開始學習Python中的OOP,我一直在通過創建Address Book來實踐這一點。我目前面臨的問題是我的for循環沒有顯示我的數組的內容,我不完全確定爲什麼?For Loop不顯示數組的內容

該代碼實際上是我製作的使用OOP的另一個短程序的副本,即for循環與另一個程序完全相同,唯一不同的是被調用的數組名稱。

我覺得這可能是一個小錯誤的for循環,造成問題的,並且可能需要另一隻眼睛來發現錯誤在什麼地方。

下面是代碼:在程序運行時

#create Contacts class 
class Contacts(): 
    def __init__(self, firstName, lastName, address, telephone, mobile, email): 
     self.firstName = firstName 
     self.lastName = lastName 
     self.address = address 
     self.telephone = telephone 
     self.mobile = mobile 
     self.email = email 

    def showDetails(self): 
     print("First Name:\t", self.firstName) 
     print("Last Name:\t", self.lastName) 
     print("Address:\t", self.address) 
     print("Telephone:\t", self.telephone) 
     print("Mobile:\t", self.mobile) 
     print("Email:\t", self.email) 

#initialise empty array 
contactsList = [] 

while True: 
    #add contacts 
    firstName = input("First Name: ") 
    lastName = input("Last Name: ") 
    address = input("Address: ") 
    telephone = input("Telephone: ") 
    mobile = input("Mobile: ") 
    email = input("Email: ") 
    print("\n") 

    contact = Contacts(firstName, lastName, address, telephone, mobile, email) 

    contactsList.append(contact) 

    answer = input("Do you want to add more contacts? ") 
    print("\n") 

    if answer == "no": 
     break 
    elif answer == "yes": 
     continue 

#For Loop not showing anything? 
for i in contactsList: 
    i.showDetails 

Python的模塊不顯示任何錯誤。

+1

你需要調用* *的方法:'i.showDetails()'(注意括號) – jonrsharpe

+0

哈哈,我無法相信我錯過了!它總是小事! – RoyalSwish

+1

請注意,Python調用類型a *'list' *; ['array.array'類型](https://docs.python.org/2/library/array.html)是不同的。 –

回答

2

你需要真正呼叫showDetails()方法:

for i in contactsList: 
    i.showDetails() 

僅僅引用該方法不會調用它。

+0

感謝您展示我的錯誤,這是您可以在調試時輕鬆忽略並瀏覽的內容之一!乾杯! – RoyalSwish

2

showdetails是一個成員函數。爲了通話它,你需要追加()

i.showDetails() 
+0

感謝您展示我的錯誤,這是您在調試時可以輕鬆忽略並瀏覽的內容之一!乾杯! – RoyalSwish