2014-11-27 3 views
0

이 문제는 여러 가지 해결책이이 포럼에서 제안되었지만 코드를 작성하고 이해할 수없는 오류가 발생하여 대부분 여기에서 묻습니다.SMS 메시지 저장

from datetime import datetime 

class SMSstore: 
    store = [] 
    read = [] 
    unread =[] 

    def addNewArrival(number,time,text): 
     SMSstore.store.append(("From: {}, Recieved: {}, Msg: {}".format(number,time,text))) 

    def messageCount(): 
     return print("Number of Messages in Inbox: {}".format(len(SMSstore.store))) 

    def viewall(): 
     print(SMSstore.store) 

    def getUnreadIndexes(): 
     for message in SMSstore.store: 
      if message[0] == False: 
       unread.append(self.__inbox.index(message)) 
     return unread 

    def getMessage(i): 
     SMSstore.read.append(len(SMSstore.store)) 
     print(SMSstore.store[i]) 

    def delete(i): 
     try: 
      del SMSstore.store[i] 
     except IndexError: 
      print("Index is out of range. Cannot delete") 
    def clear(): 
     del SMSstore.store 

time = datetime.now().strftime('%H:%M:%S') 
myInbox = SMSstore() 
myInbox.addNewArrival("1234567890",time,"What is your name?") 
myInbox.addNewArrival("0987654321",time,"What is your quest?") 
myInbox.viewall() 
myInbox.msgcount() 
myInbox.delete(i) 
myInbox.clear() 

내가 오류는 다음과 같습니다 :

line 37, in <module> 
TypeError: addNewArrival() takes exactly 3 arguments (4 given) 

답변

0

당신은 클래스의 모든 메소드의 첫 번째 인수로 자신을 둘 필요가

여기 내 코드입니다.

예 :

def addNewArrival(self, number, time, text): 
def messageCount(self): 
def viewall(self): 

더 많은 정보 그것에 대해 here

+0

감사합니다! 문제가 해결 된 것 같습니다. 그러나 이제는'29 행을 가져옵니다. TypeError : 예상 인덱스 값, 인스턴스가 있습니다. ' – galacticcannibalism

+0

은 ** self **와 같은 클래스를 참조해야하는 클래스 내에서 비슷합니다. 당신은'self.store' 또는'self.read' 나'self.unread'를 할 필요가 있습니다. 당신은 더 많은 실수를 가지고 있습니다. ** i **를 arg와 같이 전달하기 위해 정의 할 필요가 있습니다. ** messageCount ** 메소드를 잘못된 이름으로 호출하고 있습니다. – agugliotta

관련 문제