最初に私は答えを探していたが、それを見つけることができず、とても基本的な質問を申し訳なく思う.TTSでプログラムを作った。私は "list_merge"というグローバル変数を作成しましたが、大部分のあなたはグローバル変数が悪いと言いました。だから私はこのリストをinitに入れることにしました。 PS。空白を無視すると、それらはここにコピーされているためにのみ存在します。Pythonの属性エラーを解決するには
エラーは次のとおりです。 はAttributeErrorは: 'Ver2ProjectWithTTS' オブジェクトが属性 'list_merge'
どれを持っていない: 'Ver2ProjectWithTTS' オブジェクトには属性 'list_merge' 私は はAttributeErrorを取得しています
import json
import pyttsx
from openpyxl import load_workbook
class Ver2ProjectWithTTS(object):
def __init__(self):
self.read_json_file()
self.read_xml_file()
self.say_something()
self.list_merge = []
def read_json_file(self):
with open("json-example.json", 'r') as df:
json_data = json.load(df)
df.close()
for k in json_data['sentences']:
text_json = k['text']
speed_json = int(k['speed'])
volume_json = float(k['volume'])
dict_json = {'text': text_json, 'speed': speed_json, 'volume': volume_json}
self.list_merge.append(dict_json)
def read_xml_file(self):
tree = et.parse('xml-example.xml')
root = tree.getroot()
for k in range(0, len(root)):
text_xml = root[k][0].text
speed_xml = int(root[k][1].text)
volume_xml = float(root[k][2].text)
dict_xml = {'text': text_xml, 'speed': speed_xml, 'volume': volume_xml}
self.list_merge.append(dict_xml)
def say_something(self):
for item in self.list_merge:
engine = pyttsx.init()
engine.getProperty('rate')
engine.getProperty('volume')
engine.setProperty('rate', item['speed'])
engine.setProperty('volume', item['volume'])
engine.say(cleared_text)
engine.runAndWait()
if __name__ == '__main__':
a = Ver2ProjectWithTTS()
を持っていませんどのようにこのエラーを避けるためにアイデア?まあ私は客観性が良くなく、私はこれを修正せずに動きません。 PS。 init defの前にグローバル変数で正しく動作しました。助けを おかげで:)
どのような行がこのエラーを送出していますか? – dhdavvie
AttributeError: 'Ver2ProjectWithTTS'オブジェクトに 'list_merge'属性がありません。 – degath
構文の一部である場合、 '空白を無視する'のは難しいです。それは実際のインデントですか? – polku