如何用python动态创建对象

2024-09-27 07:26:26 发布

您现在位置:Python中文网/ 问答频道 /正文

好的,所以我正在打印所有的汽车对象。。。我有两个问题:

  1. 我实现__iter__的方式可以接受吗?在
  2. 我现在得到了我想要的结果,但是结果很难看。。。有没有办法把印刷品格式化,使它看起来更漂亮?在

我的代码是:

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()

Tags: selfdbgetmakemodeldeffilenameitem

热门问题