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

pathlib.Path如何实现左操作数为字符串时的/运算?为何返回Path对象?

为什么字符串和Path对象用/运算会返回Path对象

这是Python的反向运算符重载机制在起作用。

当你执行'foo' / Path('bar')时,左操作数是字符串对象,而Python的str类并没有实现__truediv__方法(也就是不支持用/和其他对象做运算),这一步会直接失败。

此时Python会转而尝试调用右操作数(也就是Path对象)的__rtruediv__方法,把左操作数的字符串'foo'作为参数传入这个方法。Path类的__rtruediv__方法会处理字符串和Path的拼接逻辑,最终返回一个完整的PosixPath(或WindowsPath)对象。

你可以通过简单的代码验证这一点:

from pathlib import Path
# 检查str是否有__truediv__方法
print(hasattr(str, '__truediv__'))  # 输出: False
# 检查Path是否有__truediv__方法
print(hasattr(Path, '__rtruediv__'))  # 输出: True

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 20:17:14