首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >使用类和方法的Python SMS存储程序- has_been_viewed状态

使用类和方法的Python SMS存储程序- has_been_viewed状态
EN

Stack Overflow用户
提问于 2013-04-27 00:15:02
回答 3查看 1.8K关注 0票数 0
代码语言:javascript
复制
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()

感谢您观看这篇文章。

这就是我需要做的:

代码语言:javascript
复制
my_inbox.add_new_arrival()

添加新消息时,其has_been_viewed状态设置为False。

代码语言:javascript
复制
my_inbox.get_unread_indexes()

返回所有未查看短信的索引列表

代码语言:javascript
复制
my_inbox.get_message(i)**

messagei的Return (from_number,time_arrived,text_of_sms)也将其状态改为“已被查看”。如果位置i处没有消息,则返回None

请在上面的方法上帮助我!?

非常感谢!

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-04-27 00:37:14

为什么不向您的类添加另一个名为unread的列表。更改add_new_arrival以将邮件添加到未读。

然后,在get_message方法下,将指定的消息从unread移动到read。

最后,get_unread方法只列出未读列表的索引。

票数 0
EN

Stack Overflow用户

发布于 2016-03-20 04:30:17

嗨,我对你的代码做了一些调整,我想我以前在“如何像计算机科学家一样思考”一书中这样做过,希望它能为你工作。

代码语言:javascript
复制
from datetime import datetime

代码语言:javascript
复制
class SMS_store:

然后

代码语言:javascript
复制
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 = []
票数 1
EN

Stack Overflow用户

发布于 2018-08-01 06:05:50

使用类和方法的Python SMS存储程序- has_been_viewed状态

代码语言:javascript
复制
import time
class SMS_store:
    def __init__(self):
        self.inbox = []

    def add_new_arrival(self, from_number, text_of_sms,read_status = False):
        number = str(from_number)
        time_received = time.strftime("%D %T")
        self.inbox.append([time_received, number, text_of_sms, read_status])

    def message_count(self):
        return "There are {0} messages in your Inbox".format(len(self.inbox))

    def get_unread_indexes(self):
        unread = []
        for index, message in enumerate(self.inbox):
            if False in message:
                unread.append(index)
        return "Unread Messages in:", unread

    def get_message(self, index):
        message = self.inbox[index]
        message[3] = "Read"
        return message[ : 3]

    def delete(self, index):
        del self.inbox[index]
        return "Deleted Message", index

    def clear(self):
        self.inbox = []
        return "Empty Inbox"
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16240858

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档