万年素人からHackerへの道

万年素人がHackerになれるまで殴り書きするぜ。

sqlalchemyの怪奇現象 Pyhon

例えばこのようにメモデルを定義する

・models.py

class RoomInfo(object):
    def __init__(self, name, kaiki_gensho):
        self.name = name
        self.kaiki_gensho = kaiki_gensho  #ここに定義

    def __repr__(self):
        return '<RoomInfo %r>' % (self.name)

room_info = Table('room_info', metadata,
    Column('name', String, primary_key=True),
    # ここにはkaiki_genshoは定義してない。
)
mapper(RoomInfo, room_info)

・呼び出しコード

        room_info = RoomInfo(
            name = 'hoge'
            kaiki_gensho = 'kowaina',
        )
        db_session.add(room_info)
        db_session.commit() #ここを通った後

        print (room.kaiki_gensho) # この結果

Columnをしてないので、DB自体にはkaiki_genshoは格納されない。

なぜか、

kowaina

が表示される。
メモリの中にいるのか?