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

Python中相邻字符串字面量自动合并的行为原理问询

Python中相邻字符串自动拼接的原理

这是Python的一项原生设计特性,叫字符串字面量隐式拼接,从Python早期版本就存在,并非bug。

具体求值过程

  • 当Python解析器遇到两个或多个字符串字面量(单引号、双引号、三引号均可)直接相邻,中间无任何分隔符时,会在编译阶段就将它们合并为一个单一字符串,而非运行时处理。
  • 示例:
    • "foo" "bar" 会被解析为 "foobar"
    • 'foo''bar' 或 "foo"'bar' 同样会得到 "foobar"
  • 这种拼接逻辑优先级高于列表元素的分隔处理,所以你写的 ["somestring" "somestring"],解析器会先把两个相邻字符串合并成 "somestringsomestring",再将这个合并后的字符串作为列表的唯一元素,最终得到 ["somestringsomestring"]。

适用场景

这个特性原本是为了方便拆分长字符串到多行,提升代码可读性,比如:

# 拆分长字符串到多行,无需加号拼接
long_description = "这是一段用于说明功能的长文本,"
                   "可以拆分成多行编写,"
                   "既保持代码整洁,又不影响字符串内容"

注意事项

该特性仅对字符串字面量生效,变量或表达式直接相邻会触发语法错误,比如:

a = "hello"
b = "world"
a b  # 这里会报错,解析器认为缺少运算符

内容的提问来源于stack exchange,提问作者Inyoung Kim 김인영

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 05:31:00