作为clang-format仅重新格式化代码的工具,这种格式化是否有可能破坏工作代码或至少改变它的工作方式?是否存在某种合同,它将/不能改变代码的工作方式?
我们有很多代码需要格式化clang-format.这意味着,许多代码行都会改变.不必审查由于a而仅更改的每一行代码clang-format都将是此过程的一个大的简化.
我会说这clang-format不会改变代码的工作方式.另一方面,如果可以保证,我不是百分百肯定.
python库pathlib提供Path.relative_to.如果一个路径是另一个路径的子路径,此函数可以正常工作,如下所示:
In [12]: from pathlib import Path
In [13]: foo = Path("C:\\foo")
In [14]: bar = Path("C:\\foo\\bar")
In [15]: bar.relative_to(foo)
Out[15]: WindowsPath('bar')
Run Code Online (Sandbox Code Playgroud)
但是,如果两个路径在同一级别上,relative_to则不起作用.
In [16]: baz = Path("C:\\baz")
In [17]: foo.relative_to(baz)
--------------------------------------------------------------------------
ValueError: 'C:\\foo' does not start with 'C:\\baz'
Run Code Online (Sandbox Code Playgroud)
我希望结果如此
WindowsPath("..\\baz")
Run Code Online (Sandbox Code Playgroud)
该函数os.path.relpath正确执行此操作:
In [18]: import os
In [19]: foo = "C:\\foo"
In [20]: bar = "C:\\bar"
In [21]: os.path.relpath(foo, bar)
Out[21]: '..\\foo'
Run Code Online (Sandbox Code Playgroud)
有没有办法实现的功能os.path.relpath使用pathlib.Path?