2017-07-28 11 views
0

割り当てのために自分のコードを書き終えました。ここに質問があります 以下の問題は電子メールメッセージシステムに関連しています。同じファイル内のすべての問題を処理します。:私は終了コード0で処理されました

(a)クラスを設計する電子メールメッセージをモデル化するメッセージ。メッセージには、受信者、送信者、およびメッセージテキストがあります。 - 送信者と受信者を取得するコンストラクタ - メッセージ本文に1行のテキストを追加するメソッドの追加 - メッセージをこのような1つの長い文字列にするメソッドtoString新しい行に入っています): "From:Harry Morgan To:Rudolf Reindeer ..."

(b)Exercise 2aのMessageクラスを使用して、電子メールメッセージを格納するクラスメールボックスを設計します。次のメソッドを実装します。 を - デフそしてaddMessage(自己、メッセージ) - デフのgetMessage(自己、インデックス) - デフremoveMessage(自己、インデックス)

(C)からのメッセージやメールボックスのクラスを使用するプログラムを書きます問題2aと2bがメッセージを作成して印刷し、それをメールボックスに格納する。

だから私は自分自身でコードをやりましたが、完成しましたが、出力として何も得られませんでしたが、終了コード0で処理されました。なぜ出力の代わりにその結果を与えるのか分かりません。もし誰かが私を助けることができたら、それはすばらしいだろう。ありがとう。ここで

class Message(): 
    def __init__(self, mysender, myrecipient): 
     self._sender = mysender 
     self._recipient = myrecipient 
     self._text = [] 

    def getSender(self): 
     return self._sender 

    def getRecipient(self): 
     return self._recipient 

    def append(self, mymessage): 
     self._text.append(mymessage) 

    def toString(self): 
     out = "From: {}\nTo: {}\n".format(self._sender, self._recipient) 
     out += "\n".join(self._text) 
     return out 


class Mailbox(): 
    def __init__(self): 
     self._mails = [] 

    def listmessage(self): 
     output = [] 
     for i, message in enumerate(self._mails): 
      output.append("[{}] From: {}, To: {}".format(i, message.get_sender(), message.get_recipient())) 
     return "\n".join(output) 

    def addmessage(self, message): 
     self._mails.append(message) 

    def getmessage(self, index): 
     return self._mails[index].to_string() 

    def removemessage(self, index): 
     del self._mails[index] 
+1

何も実際のクラスをインスタンス化していない(つまり、あなたは部品 'A'と 'B'を持っていますが、 'c'ではないので)、このコードは単独では何もしないで終了する(*終了ステータス0を持つ)。 [mcve]を生成してください - "検証可能"の一部は、人々が変更なしでコードをコピー、ペースト、実行して、質問に記載されているのと同じ動作を見ることができるということです。 –

+0

スクリプト全体を提供できますか?現在のところ、エントリポイントがないので、Pythonはクラス定義をロードするだけです。それだけです。 – max

+1

ところで、コードから明らかなコンテンツのみを提供するコメントは、コメントがないよりも悪いです。コードを読んでいる誰かが知る必要がある文脈のコメントを使用する - 'def getmessage()'の直前に '#function getmessage'を置くだけで、あなたのコードは長くなり、読みにくくなります。 (私は現在、これらのコメントを編集しています)。 –

答えて

0

が設定メインを使用して修正されたコードです:あなたのコード内

class Message(): 
    def __init__(self, mysender, myrecipient): 
     self._sender = mysender 
     self._recipient = myrecipient 
     self._text = [] 

    def getSender(self): 
     return self._sender 

    def getRecipient(self): 
     return self._recipient 

    def append(self, mymessage): 
     self._text.append(mymessage) 

    def toString(self): 
     out = "From: {}\nTo: {}\nText: {}".format(self._sender, self._recipient, self._text) 
     return out 



class Mailbox(): 
    def __init__(self): 
     self._mails = [] 

    def listmessage(self): 
     output = [] 
     for i, m in enumerate(self._mails): 
      output.append(m.toString()) 
      #print(m.toString()) 
     return output 

    def addmessage(self, message): 
     self._mails.append(message) 

    def getmessage(self, index): 
     return self._mails[index].to_string() 

    def removemessage(self, index): 
     del self._mails[index] 


if __name__ == "__main__": 
    mess = Message("sender", "recipient") 
    mess.append("Hi there!") 
    print(mess.toString()) 

    print("setting up mailbox") 
    mbox = Mailbox() 
    mbox.addmessage(mess) 
    listemail = mbox.listmessage() 
    print(listemail) 
関連する問題