在 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 中处理这个问题感兴趣。
我假设典型的路径对象是
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]):
...