You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python3报SyntaxError: can't assign to function call错误如何解决

错误原因

该报错属于Python基础语法限制:Python不允许对函数调用的返回值直接执行赋值操作。你代码中'test{}'.format(i)是str.format()方法的调用结果,属于临时生成的字符串值,不能直接作为变量名接收赋值。

修复方案

方案1:字典存储(最优选择)

推荐用字典统一收纳所有生成的SQL语句,后续取用和批量管理都更方便:

# 初始化空字典存储SQL
sql_dict = {}
for i in range(1, 13):
    # 把动态生成的test+数字作为字典key,SQL语句作为value
    sql_dict[f'test{i}'] = f"""
select * from test_table where month(date_time) = {i}
"""

后续需要对应月份的SQL时,直接用sql_dict['test3']这类写法读取即可。

方案2:动态生成全局变量(不推荐)

如果确实需要生成独立的全局变量,可以通过操作globals()内置字典实现:

for i in range(1, 13):
    globals()[f'test{i}'] = f"""
select * from test_table where month(date_time) = {i}
"""

运行后可以直接调用test1、test12这类变量拿到对应SQL,但该写法会污染全局命名空间,调试难度更高,仅做参考不推荐日常使用。

内容的提问来源于stack exchange,提问作者Elsa

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.23 23:57:04