質問編集履歴

4

編集

2022/08/10 12:04

投稿

torataka
torataka

スコア2

test CHANGED
File without changes
test CHANGED
@@ -13,9 +13,14 @@
13
13
  事前に準備しておいたテキストファイルから正規表現で取得するようにしたいです
14
14
  ### 発生している問題・エラーメッセージ
15
15
  ```
16
+ Traceback (most recent call last):
17
+ File "/Users/komadatakahito/Documents/BOT/GUI/mainWindow.py", line 35, in buttonTalkSlot
18
+ response = self.pityna.dialogue(value)
19
+ File "/Users/komadatakahito/Documents/BOT/GUI/pityna.py", line 21, in dialogue
20
+ return self.responder.response(input)
21
+ File "/Users/komadatakahito/Documents/BOT/GUI/responder.py", line 27, in response
16
22
  self.dictionary.pattern['pattern'],
17
- AttributeError: 'dict' object has no attribute 'pattern'
23
+ AttributeError: 'dict' object has no attribute 'pattern'```
18
- ```
19
24
  ### 該当のソースコード
20
25
  ```
21
26
  {responder.py}

3

本文修正

2022/08/10 11:38

投稿

torataka
torataka

スコア2

test CHANGED
File without changes
test CHANGED
@@ -2,6 +2,10 @@
2
2
 
3
3
  お初です。
4
4
  pythonの初心者用の書物で簡易的な会話BOTシステムを作っています。
5
+ 書物はpythonプログラミングパーフェクトマスターです。
6
+ linkはこちらです。
7
+ https://www.shuwasystem.co.jp/book/9784798063676.htmlです。
8
+ ###################################
5
9
  このシステム主軸となるclassを作るresponder.pyで
6
10
  正規表現を返す機能を実装中に以下のエラーメッセージが発生しました。
7
11
 

2

本文の修正

2022/08/10 01:18

投稿

torataka
torataka

スコア2

test CHANGED
File without changes
test CHANGED
@@ -88,13 +88,83 @@
88
88
  patternsDictionary.setdefault('phrases', []).append(prs)
89
89
  return patternsDictionary
90
90
 
91
+ ## 実行##
92
+ {main.py}
93
+ import sys
94
+ from PyQt5 import QtWidgets
95
+ import mainWindow
96
+ ## このファイルが直接実行された場合に
97
+ if __name__ == "__main__":
98
+ app = QtWidgets.QApplication(
99
+ sys.argv
100
+ )
101
+ win = mainWindow.MainWindow()
102
+ win.show()
103
+ ret = app.exec_()
104
+ sys.exit(ret)
91
105
 
106
+ {mainWindow.py}
107
+ # from urllib import response
108
+ import pityna as pityna
109
+ from PyQt5 import QtWidgets
110
+ import qt_PitynaUI
111
+
112
+ #QtWidgets.QMainWindowを継承したサブクラスUI画面の構築を行う
113
+ class MainWindow(QtWidgets.QMainWindow):
114
+ #初期化のための処理
115
+ def __init__(self):
116
+ #スーパークラスのinit()を呼び出す
117
+ super().__init__()
118
+ self.pityna = pityna.Pityna('pityna')
119
+ #pitynaオブジェクトを生成
120
+ self.action = True
121
+ #ラジオボタンの状態を初期化
122
+ self.ui = qt_PitynaUI.Ui_MainWindow()
123
+ #Ui_MainWindow()オブジェクトを生成
124
+ self.ui.setupUi(self)
125
+ #setupUi()で画面を構築そしてMAINWINDOW自身を引数にすることが大事
126
+
127
+ def putlog(self, str):
128
+ #QListWidgetクラスのaddmin()でログをリストに追加
129
+ self.ui.listWidget.addItem(str)
130
+ def prompt(self):
131
+ p = self.pityna.get_name()
132
+ if self.action == True:
133
+ p += ':' + self.pityna.get_responder_name()
134
+ return p + '> '
135
+ def buttonTalkSlot(self):
136
+ value = self.ui.lineEdit.text()
137
+
138
+ if not value:
139
+ self.ui.labelResponse.setText('なに?')
140
+ else:
141
+ response = self.pityna.dialogue(value)
142
+ self.ui.labelResponse.setText(response)
143
+ self.putlog('> ' + value)
144
+ self.putlog(self.prompt() + response)
145
+ self.ui.lineEdit.clear()
146
+ def closeEvent(self, event):
147
+ reply = QtWidgets.QMessageBox.question(
148
+ self,
149
+ '確認',
150
+ "プログラムを終了しますか?",
151
+ buttons = QtWidgets.QMessageBox.Yes |
152
+ QtWidgets.QMessageBox.No
153
+ )
154
+ if reply == QtWidgets.QMessageBox.Yes:
155
+ event.accept()
156
+ else:
157
+ event.ignore()
158
+ def showResponderName(self):
159
+ self.action = True
160
+ def hiddenResponderName(self):
161
+ self.action = False
92
162
  ```
93
163
  ### 試したこと
94
164
 
95
165
  dictにpatternがないとのことでソースコードから見直してみましたが行き詰まりました
96
166
 
97
167
  ### 補足情報(FW/ツールのバージョンなど)
168
+ python=3.913
98
169
 
99
- ここにより詳細な情報を記載してください。
100
170
 

1

質問本文の追記・修正

2022/08/10 01:15

投稿

torataka
torataka

スコア2

test CHANGED
File without changes
test CHANGED
@@ -6,8 +6,8 @@
6
6
  正規表現を返す機能を実装中に以下のエラーメッセージが発生しました。
7
7
 
8
8
  ### 実現したいこと
9
- 事前に準備しておいたテキストファイルから正規表現で取得するようにしたいです](url)
9
+ 事前に準備しておいたテキストファイルから正規表現で取得するようにしたいです
10
- ### 発生している問題・エラーメッセー### 該当のソースコード
10
+ ### 発生している問題・エラーメッセー
11
11
  ```
12
12
  self.dictionary.pattern['pattern'],
13
13
  AttributeError: 'dict' object has no attribute 'pattern'