Ok, так что я пытаюсь напечатать все объекты автомобиля ... У меня 2 вопроса:как use__iter__ динамически создавать объекты в питона
- ли способ я реализую
__iter__
приемлемой? - Я получаю результаты, которые хочу получить сейчас, но результат довольно уродливый ... есть способ отформатировать печать, чтобы она выглядела красивее?
Вот мой код:
import sqlite3
class Database:
def __init__(self, **kwargs):
self.filename = kwargs.get('filename')
def __iter__(self):
car_object = {}
cursor = self._db.execute('select * from CARS'.format(self._table))
for row in cursor:
objectname = str(row['IDENT'])
car_object[objectname] = Cars(make = row['MAKE'],
model = row['MODEL'], disp = row['DISPLACEMENT'],
power = row['POWER'], luxury = row['LUXURY'])
yield dict(row)
@property
def filename(self):
return self._filename
@filename.setter
def filename(self, fn):
self._filename = fn
self._db = sqlite3.connect(fn)
self._db.row_factory = sqlite3.Row
class Cars:
def __init__(self, **kwargs):
self.variables = kwargs
def set_Variable(self, k, v):
self.variables[k] = v
def get_Variable(self, k):
return self.variables.get(k, None)
def main():
db = Database(filename = 'insurance.sqlite')
print ('IDENT MAKE MODEL
DISPLACEMENT POWER LUXURY')
for item in db:
print(item['IDENT'], ' ', item['MAKE'], ' ',
item['MODEL'],' ', item['DISPLACEMENT'],
' ', item['POWER'],' ', item['LUXURY'])
if __name__ == "__main__": main()
Ваш отступ выглядит неверным. Это не источник вашей ошибки, это просто проблема форматирования с вопросом. –
@Bryan Oakley ... он отлично выглядит в затмении, но эта страница просто заставляет его выглядеть странно. – engr007
Никто не будет смотреть на ваш код в затмении. Пожалуйста, уделите время правильному форматированию вопроса. Самый простой способ - преобразовать все вкладки в пробелы, прежде чем вставлять их в вопрос. –