【问题标题】:Path class alternative to __file__ in pythonpython中__file__的路径类替代
【发布时间】:2022-11-03 22:43:38
【问题描述】:

每个 python 脚本都有自己的__file__ 属性,即str 和该脚本的路径。

既然有pathlib.Path类,那么有没有对应__file__的替代品呢?像__file_path__ 这样type(__file_path__) == Path

我们能做到的最接近的方法是只使用Path(__file__) 而不是__file__,这是真的吗?

【问题讨论】:

  • AFAIK,就是这样。
  • 由于Path 不是内置类型,因此低级 Python 解释器不依赖它,因此它不会自动创建类似的属性。
  • 通过“内置”类型,我认为@Barmar 意味着它不是通过CPython 源代码中Objects 方向的C 代码实现的。例如,intObjects/longobject.c 中实现,但请参阅repl 中的vars(__builtins__)docs.python.org/3.10/library/builtins.html 了解更多信息

标签: python


【解决方案1】:

__file__ 和类似的属性是set by the import machinery。所有这些属性都使用str 类型来描述路径。

为了将这些路径视为Path 实例,最简单的选择是在需要时将它们显式转换为pathlib.Path(__file__)

【讨论】:

    猜你喜欢
    • 2020-07-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-04
    • 2014-01-07
    • 2015-04-06
    • 2020-12-14
    • 1970-01-01
    相关资源
    最近更新 更多