SQLAlchemy docs(设置列默认值)这一行在语法上如何有效?

2024-06-17 13:45:17 发布

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

在阅读有关列构造函数参数的SQLAlchemy文档时,我发现了this code example(经过编辑以删除对Column()的不相关调用,请参阅链接中的完整示例):

t = Table("mytable", meta,
    # define 'key' to pull its default from the 'keyvalues' table
    Column('key', String(20), default=keyvalues.select(keyvalues.c.type='type1', limit=1))
)

具体来说,我不明白Column()default参数是如何有效的。对于我和我的Python解释器,keyvalues.select(keyvalues.c.type='type1', limit=1) 似乎正在使用表达式keyvalues.c.type作为keyvalues.select()的关键字参数的名称

文档掩盖了keyvalues的定义,我还没有找到定义keyvalues的方法来阻止我的解释器抛出语法错误

表达式不能用作关键字,对吗?这是不是因为另一个原因而有效的语法?如果它是有效的语法,你能提供一个简短的例子来说明使它有效的必要代码吗


Tags: key文档default参数定义表达式type语法