PYTHON
1class Pityna: 2 """ 3 classe da pityna 4 5 """ 6def __init__(self, name): 7 """pitynaオブジェクトの名前をnameに格納 8 Responderオブジェクトを生成してresponderに格納 9 10 11 parameters: 12 self(object):呼び出し元のpitynaオブジェクト 13 name(str) : pitynaオブジェクトの名前 14 """ 15 #pitynaオブジェクトの名前をインスタンス変数に代入 16 17 self.name = name 18 19 #responderオブジェクトを生成してインスタンス変数に代入 20 21 self.responder = Responder('Repeat') 22 23def dialogue(self, input): 24 """応答オブジェクトのresponse()を呼び出して応答文字列を取得する 25 26 Parameters: 27 self(object):呼び出し元のpitynaオブジェクト 28 input(str) :ユーザーによって入力された文字列 29 Returns: 30 str: 応答文字列 31 """ 32 # response()メソッドを実行し、戻り値(応答文字列)をそのまま返す 33 return self.responder.response(input) 34 35def get_responder_name(self): 36 """応答に使用されたオブジェクト名を返す 37 38 Parameters: 39 self(object): 呼び出し元のpitynaオブジェクト 40 Returns: 41 str: 応答オブジェクトの名前 42 """ 43 #responderの格納されているオブジェクト名を取得し戻り値にする 44 return self.responder.name 45 46def get_name(self): 47 """pitynaオブジェクトの名前を返す 48 49 Parameters: 50 self(object):呼び出し元のpitynaオブジェクト 51 Returns: 52 str:このクラス名前 53 """ 54 #このクラスの名前を取得し戻り値にする 55 return self.name 56 57 58class Responder: 59 """応答クラス 60 """ 61 def __init__(self, name): 62 """Responderオブジェクトの名前をnameに格納 63 64 Parameters: 65 self(object):呼び出し元のResponderオブジェクト 66 name(str) :Responderオブジェクトの名前 67 """ 68 self.name = name 69 70 def response(self, input): 71 """応答文字列を作って返す 72 73 Parameters: 74 self(object):呼び出し元のResponderオブジェクト 75 input(str) :ユーザーが入力した文字列 76 Returns: 77 str:応答メッセージ 78 """ 79 #オウム返しの返答をする 80 return '{}って何'.format(input) 81 82############################################################################### 83 #実行ブロック 84############################################################################### 85def prompt(obj): 86 """pitynaのpromptを作る関数 87 88 Parameters: 89 obj(object):呼び出し元のpitynaオブジェクト 90 Returns: 91 str: pitynaのprompt用の文字列 92 """ 93 #「'pitynaオブジェクト名:応答オブジェクト名> '」の文字列を返す 94 return obj.get_name() + ' : ' + obj.get_responder_name() + ' > ' 95 96#ここからプログラム開始 97print('Pityna System prototype : pityna') #プログラムの情報を表示 98pityna = Pityna('Pityna') #Pitynaオブジェクトを生成 99 100while True: #対話処理開始 101 inputs = input(' > ') 102 if not inputs: 103 print('bye') 104 break 105 else: 106 response = pityna.dialogue(inputs) #応答文字列を取得 107 print(prompt(pityna), response) #promptと応答文字列をつなげて表示 108 109pityna() Take no argumentsって出てきます。お願いします。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2022/06/03 23:09 編集