Вам нужно создать второй список и просто добавить к нему атрибуты, к которым можно получить доступ, вызвав dir(obj)
. Мы проигнорируем частные атрибуты, исключив те, которые начинаются с "_". Например:
list_obj = []
list_attrs = []
for i in range (10):
obj = sensorUltrasonido("verde", 0, 3)
list_obj.append(obj)
attrs = [attr for attr in dir(obj) if not str(attr).startswith("_")]
list_attrs.append(attrs)
После этого вы можете использовать свои списки для записи в текстовый файл.
Обратите внимание, что вместо хранения двух списков, заполненных [obj, ...]
и [attrs, ...]
, Вариант будет иметь один список [(obj, attrs), ...]
, потому что тогда связь между этими элементами будет более ясной.
Теперь, если вам нужно сохранить имена и значения атрибутов, мы будем использовать словарь вместо этого:
attrs = {attr: getattr(obj, attr) for attr in dir(obj) if not str(attr).startswith("_")}
Для тестирования я создаю класс:
class sensorUltrasonido():
def __init__(self, x, y, z):
self.x = x
self.y = y
self.z = z
и print(list_attrs)
дает нам:
[{'x': 'verde', 'y': 0, 'z': 3}, {'x': 'verde', 'y': 0, 'z': 3}, {'x': 'verde', 'y': 0, 'z': 3}, {'x': 'verde', 'y': 0, 'z': 3}, {'x': 'verde', 'y': 0, 'z': 3}, {'x': 'verde', 'y': 0, 'z': 3}, {'x': 'verde', 'y': 0, 'z': 3}, {'x': 'verde', 'y': 0, 'z': 3}, {'x': 'verde', 'y': 0, 'z': 3}, {'x': 'verde', 'y': 0, 'z': 3}]