2013-04-26 16 views
0
from datetime import datetime 

class sms_store: 
    store = [] 
    read = [] 
def add_new_arrival(self,number,time,text): 
    sms_store.read.append(len(sms_store.store)) 
    sms_store.store.append(("From: {}, Recieved: {}, Msg: {}".format(number,time,text))) 
def delete(self,i): 
    try: 
     del sms_store.store[i] 
    except IndexError: 
     print("Index is out of range. Cannot delete") 
def message_count(self): 
    return print("Amt of messages in inbox: {}".format(len(sms_store.store))) 
def viewall(self): 
    print(sms_store.store) 
def get_unread_indexes(self): 
    #### ###################################I need help for this method. 
def get_message(self,i) 
    print(sms_store.store[i]) 
### tests #### 
time = datetime.now().strftime('%H:%M:%S') 
my_inbox = sms_store() #instantiate an object 'store' for class 
my_inbox.add_new_arrival("12345",time,"Hello how are you?") #instance of store object 
my_inbox.add_new_arrival("1111111",time,"BYE BYE BYE") 
my_inbox.viewall() 
my_inbox.msgcount() 

感謝您瀏覽本文。使用類和方法的Python短信商店程序 - has_been_viewed狀態

這是我需要做的:

my_inbox.add_new_arrival() 

當添加一個新的消息,其has_been_viewed狀態設置爲False。以「已被視爲

my_inbox.get_unread_indexes() 

返回所有還未看到短信

my_inbox.get_message(i)** 

回報(FROM_NUMBER,time_arrived,text_of_sms)的消息的索引列表[我] 還改變其狀態」。 如果在位置i上沒有消息,則返回無

請幫助我解決上述問題!

非常感謝!

回答

0

爲什麼不給你的班級添加另一個名爲unread的列表。更改add_new_arrival將消息添加到未讀。

然後根據get_message方法將指定的消息從未讀取移動到讀取。

最後您的get_unread方法只是列出了未讀列表的索引。

1

嗨我調整了一下你的代碼,我想我以前在「如何像電腦科學家的書中思考」這樣做過,希望它適合你。

from datetime import datetime 

class SMS_store: 

然後

def __init__(self): 
    self.store = [] 


def __str__(self): 
    return ("{0}".format(self)) 

def add_new_arrival(self, number, time, text): 
    self.store.append(("Read: False", "From: "+number, "Recieved: "+time, "Msg: "+text)) 

def message_count(self): 
    return (len(self.store)) 

def get_unread_indexes(self): 
    result = [] 
    for (i, v) in enumerate(self.store): 
     if v[0] == "Read: False": 
      result.append(i) 
    return (result) 

def get_message(self, i): 
    msg = self.store[i] 
    msg = ("Read: True",) + msg[1:] 
    self.store[i] = (msg) 
    return (self.store[i][1:]) 

def delete(self, i): 
    del self.store[i] 

def clear(self): 
    self.store = []