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

Pathlib一行创建Path实例并调用mkdir为何返回None?能否实现?

Pathlib一行调用mkdir返回None的原因及解决方法

为什么一行写法会得到None?

Path.mkdir()方法的设计就是执行目录创建操作后返回None,不会返回Path对象本身。你在一行写法里,是把mkdir()的返回值直接赋值给了region_path,那自然得到的是None。而两行写法里,先把Path实例赋值给region_path,再调用它的mkdir()方法,这时候只是执行创建目录的动作,region_path仍然指向原来的Path对象,所以能得到有效实例。

可以用一行代码完成吗?

当然可以,有两种常用方式:

方式1:用分号分隔语句

把创建Path对象和调用mkdir的操作放在同一行,用分号分隔:

script_path = Path(__file__).parent.resolve()
region_path = Path(script_path/"device_details"/"region"); region_path.mkdir(parents=True, exist_ok=True)

方式2:使用海象运算符(Python 3.8+)

利用海象运算符先绑定Path对象,再调用mkdir,最后返回原对象:

script_path = Path(__file__).parent.resolve()
region_path = (p := Path(script_path/"device_details"/"region")).mkdir(parents=True, exist_ok=True) or p

这里因为mkdir()返回None,or会短路取后面的p,也就是我们需要的Path实例。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 03:55:11