我定义如下:在Python中调用列表中的特定对象?
class SMSMessage(object):
def __init__(self, hasBeenRead, messageText, fromNumber):
self.hasBeenRead = hasBeenRead
self.messageText = messageText
self.fromNumber = fromNumber
hasBeenRead = "False"
fromNumber = "07189202003"
具有以下功能:
def MarkAsRead(self):
if hasBeenRead == "False":
return hasBeenRead == "True"
def add_sms():
sms1 = (hasBeenRead, messageText, fromNumber)
return SMSStore.append(sms1)
def get_count():
return len(SMSStore)
def get_message(i):
for i in SMSStore:
return messageText
def get_unread_messages(i):
for i in SMSStore:
if hasBeenRead == "False":
return messageText
这是SMS仿真,其中用户是指将消息发送到一个列表中的逻辑(SMSStore [ ]),然后从列表中召回的具体信息:
userChoice = ""
while userChoice != "quit":
userChoice = raw_input("What would you like to do - read/send/quit?")
if userChoice == "read":
unreadChoice = raw_input("Would you like to retrieve all unread messages or one of your own choice? - all unread/custom ")
if unreadChoice == "custom":
messageNo = int(raw_input("Please enter which messsage number you want to read: "))
print get_message(messageNo)
print MarkAsRead(messageNo)
elif unreadChoice == "all unread":
print get_unread_messages(hasBeenRead)
else:
print "incorrect entry"
elif userChoice == "send":
messageText = raw_input('Please type in your message')
add_sms()
print SMSStore
我的主要问题是,我能够在(hasBeenRead,MessageText中,fromNumber)发送到SMSSto但当试图阅读我似乎无法返回用户选择messageNo的消息文本。它总是返回列表中最后一项的messageText。我仍然不熟悉编码,所以任何帮助将不胜感激。
感谢
有一些东西在这里没有任何意义,我不知道你是否不熟悉OOP。例如,除了定义全局'hasBeenRead'和'fromNumber'变量之外,您的第一个代码段不做任何事情;它不会创建实例或将这些值传递给任何内容。在其他地方,你不用通过'self.hasBeenRead'等实例来引用属性(另外,你应该真正使用布尔值 - 'True'和'False' - 不是字符串'True'和'False' ')。 –
感谢您的布尔提示。让我发布实际的任务问题,你可以告诉我一个更好的策略或方法?如前所述,我仍然是一个noob,但尽我所能:)。 – Zambo004
为具有三个变量的SMSMessage创建类定义:hasBeenRead,messageText和fromNumber。 ●构造函数应初始化发件人的编号。 ●构造函数还应该将hasBeenRead初始化为false。 ●在此类中创建一个名为MarkAsRead的方法,该方法应该将hasBeenRead更改为true。 ●创建一个名为SMSStore的列表,用作收件箱。 ●然后创建以下方法: – Zambo004