Python中用类型提示注释路径的正确方法是什么? [重复]

问题描述 投票:0回答:1

在 python3 中注释从文件读取的简单实用函数的正确方法是什么? 它应该接受

pathlib.Path
对象以及传递路径的任何其他常见方式。

def read_json(path: <TYPE HINT>):
    with open(path, 'rb') as f:
        data = json.load(f)
    return data

在我看来,这个话题似乎在不断变化,而且我找不到收集这些信息的好地方。我对如何在 python 3.6、3.7 和 3.8 中处理这个问题感兴趣。

python type-hinting typing pathlib
1个回答
58
投票

我假设典型的路径对象是

Path
str
,因此您可以使用
Union
。此外,更具包容性的
os.PathLike
优于
pathlib.Path

Python 3.10 或更高版本:

import os

def read_json(path: str | os.PathLike):
    ...

Python 3.5 - 3.9:

import os
import typing

def read_json(path: typing.Union[str, os.PathLike]):
    ...
© www.soinside.com 2019 - 2024. All rights reserved.