我正在使用sqlalchemy ORM,并且具有包含许多列的表(即ORM中具有许多属性的类)。我想实例化一个类,然后使用字典分配实例的属性,其中键是属性名称,值是实例要采用的期望值。当我通过使用for循环遍历字典中的键来尝试此操作时,所得实例不会保留我提供的值。在for循环中,如果我打印instance.attribute,则这些值在那里,但是在for循环之外,它们消失了,对于这些值,我将得到None。 知道为什么这行不通吗?
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy import Integer
Base = declarative_base()
class SomeThing(Base):
__tablename__ = 'some_things'
thing1 = Column(Integer, primary_key = True, nullable = False)
thing2 = Column(Integer, nullable = False)
thing3 = Column(Integer, nullable = False)
some_thing = SomeThing()
dictionary = {'thing1' : 1, 'thing2' : 2, 'thing3' : 3}
for key in dictionary.keys():
some_thing.key = dictionary[key]
print(some_thing.key)
print(some_thing.thing1)
循环内的print语句返回期望值,但是循环外的print语句返回None。