Witam,
są to moje pierwsze początki jeśli chodzi o programowanie obiektowe. Proszę o informacje czy poprawnie to robię.
Generalnie to chce z dwóch pętli zapisać dane, aby je wykorzystać później w innej funkcji:
class Alarm():
def alarm_variable(parsed_file, file):
excel_path = file.split("/")
excel_path = "/".join(excel_path[:-1])
print(excel_path)
# Parsing xml file
driver_name = parsed_file.xpath("")
driver_module = parsed_file.xpath("")
driver_id = parsed_file.xpath("")
variables_driver_id = parsed_file.xpath("")
limit_value_text = parsed_file.xpath("")
symbolic_address = parsed_file.xpath("")
name = parsed_file.xpath("")
reaction_matrix_active = parsed_file.xpath("")
reaction_matrix_name = parsed_file.xpath("")
for i in range(len(limit_value_text)):
xml_data = XMLData
xml_data.add_xml_data(limit_value_text[i].text, name[i].text, symbolic_address[i].text, variables_driver_id[i])
if variables_driver_id[i] in driver_id:
for g in range(len(driver_id)):
if variables_driver_id[i] == driver_id[g]:
xml_data.add_xml_data(driver_name[g].text, driver_module[g].text)
break
if limit_value_text[i].text[1:] in key_words[0]:
for j in range(len(key_words[0])):
if limit_value_text[i].text[1:] == key_words[0][j]:
xml_data.add_xml_data(key_words[1][j])
break
else:
xml_data.add_xml_data("") # add empty string if translated text not available
def alarm_rema(self, parsed_file, file):
xml_rema = XMLREMA
matrix_name = parsed_file.xpath("")
for s in range(len(matrix_name)):
matrix_limit_value = parsed_file.xpath("")
rea_alarm = parsed_file.xpath("")
if len(key_words[0]) > 0:
for s in range(len(matrix_limit_value)):
try:
if matrix_limit_value[s].text[1:] in key_words[0]: # TODO convert to dict
for j in range(len(key_words[0])):
if matrix_limit_value[s].text[1:] == key_words[0][j]:
xml_rema.add_rema_data(matrix_limit_value[s].text, key_words[1][j], rea_alarm[s].text)
else:
xml_rema.add_rema_data(matrix_limit_value[s].text, None, rea_alarm[s].text)
except:
continue
class XMLData:
def __init__(self, new_limit_value_text, new_name, new_symbolic_address, new_variable_driver_id, new_driver_name, new_driver_module):
self.stored_data = [], []
self.new_limit_value_text = new_limit_value_text
self.new_name = new_name
self.new_symbolic_address = new_symbolic_address
self.new_variables_driver_id = new_variable_driver_id
self.new_driver_name = new_driver_name
self.new_driver_module = new_driver_module
def add_xml_data(self, limit_value_text, new_name, new_symbolic_address, new_variable_driver_id, new_driver_name, new_driver_module):
self.stored_data.append(new_limit_value_text, new_name)
class XMLREMA:
def __init__(self, new_matrix_values, new_key_words, new_rea_alarm):
self.new_rema_data = [], [], []
self.new_matrix_values = new_matrix_values
self.new_key_words = new_key_words
self.new_rea_alarm = new_rea_alarm
def add_rema_data(self, new_matrix_values, new_key_words, new_rea_alarm):
self.new_rema_data.append(new_matrix_values, new_key_words, new_rea_alarm)
PS. I swoją drogą dostaję taki błąd:
self.stored_data.append(limit_value_text)
AttributeError: 'str' object has no attribute 'stored_data'
Proszę o informacje czy program jest dobrze napisany, i jeśli nie to co poprawić ?