0

postgresql db で動作するように設計されたクラスがあります。

dbclass = DBclass(1)
class DBclass(object):
    select_query    = 'SELECT * FROM "{table}" WHERE {table}_id=%s'

    def __init__(self, id=None):
            self.__id       = id
            self.__table    = self.__class__.__name__.lower()

そして、私は__setattr__オーバーロードしました:

def __setattr__(self, name, value):
    super(DBclass, self).__setattr__(name, value)
    self.load()

そして、データベースからコンテンツをロードするために接続するために使用されるメソッド:

def load(self):
    # Here I send select query and get two remaining values

これで、初期化と値__setattr__しかできません。私のデータベースにはロードされていない 2 つのフィールドがまだあります。変数がまだ初期化されておらず、python が load メソッドを呼び出してクエリを送信できないため、それらを使用して初期化できません。__id__table__setattr____table__id

おそらく、私は自分の決定に間違ったロジックを入れており、db からの値はそのように開始されるべきではありません。

4

1 に答える 1